WikiGrenada
ua829038_wg
https://wikigrenada.com/wiki/Main_Page
MediaWiki 1.42.3
first-letter
Media
Special
Talk
User
User talk
WikiGrenada
WikiGrenada talk
File
File talk
MediaWiki
MediaWiki talk
Template
Template talk
Help
Help talk
Category
Category talk
Module
Module talk
Template:Div col end
10
26
43
2015-10-03T15:58:07Z
en>NeilN
0
Changed protection level of Template:Div col end: per request at [[WP:RFPP]] ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))
wikitext
text/x-wiki
<includeonly></div></includeonly><noinclude>
{{Documentation|Template:Div col/doc}}
</noinclude>
78088d41c21d779e3722f220fcc9773dfbbc1e4f
Template:Section link
10
44
79
2017-01-17T01:29:39Z
en>Primefac
0
done
wikitext
text/x-wiki
{{#invoke:Section link|main}}<noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage and interwikis go on Wikidata. -->
</noinclude>
8d047e5845f8a9b74a4655b5dd79ca7595a8f88b
Template:Navbar
10
39
69
2017-04-22T18:49:17Z
en>Plastikspork
0
Closed
wikitext
text/x-wiki
<includeonly>{{#invoke:Navbar|navbar}}</includeonly><noinclude>
{{documentation}}
</noinclude>
868e3566b7e8a9a5a7f3dac75cac429c47de10d3
Template:Yesno-no
10
59
109
2018-02-13T20:27:17Z
en>WOSlinker
0
separate pp-template not needed
wikitext
text/x-wiki
{{safesubst:<noinclude />yesno|{{{1}}}|yes={{{yes|yes}}}|no={{{no|no}}}|blank={{{blank|no}}}|¬={{{¬|no}}}|def={{{def|no}}}}}<noinclude>
{{Documentation|Template:Yesno/doc}}
<!--Categories go in the doc page referenced above; interwikis go in Wikidata.-->
</noinclude>
1ad7b7800da1b867ead8f6ff8cef76e6201b3b56
Template:Tag
10
48
87
2018-07-26T17:17:13Z
en>SMcCandlish
0
These are called attributes; no one who does HTML calls them "parameters".
wikitext
text/x-wiki
<code class="{{#ifeq:{{{wrap|}}}|yes|wrap|nowrap}}" style="{{#ifeq:{{{style|}}}|plain|border:none;background:transparent;|{{{style|}}}}}"><!--
Opening tag
-->{{#switch:{{{2|pair}}}
|c|close =
|e|empty|s|single|v|void
|o|open
|p|pair = <{{#if:{{{link|}}}|[[HTML element#{{{1|tag}}}|{{{1|tag}}}]]|{{{1|tag}}}}}{{#if:{{{params|{{{attribs|}}}}}}| {{{params|{{{attribs}}}}}}}}
}}<!--
Content between tags
-->{{#switch:{{{2|pair}}}
|c|close = {{{content|}}}
|e|empty|s|single|v|void =  />
|o|open = >{{{content|}}}
|p|pair = {{#ifeq:{{{1|tag}}}|!--||>}}{{{content|...}}}
}}<!--
Closing tag
-->{{#switch:{{{2|pair}}}
|e|empty|s|single|v|void
|o|open =
|c|close
|p|pair = {{#ifeq:{{{1|tag}}}|!--|-->|</{{{1|tag}}}>}}
}}<!--
--></code><noinclude>
{{Documentation}}
</noinclude>
eae208bc1612c834de697fa3ee9b343966cf8602
Template:Template other
10
52
95
2018-12-16T22:06:25Z
en>Amorymeltzer
0
Changed protection level for "[[Template:Template other]]": [[WP:High-risk templates|Highly visible template]]: Transclusion count has increased dramatically ([Edit=Require administrator access] (indefinite) [Move=Require administrator access] (indefinite))
wikitext
text/x-wiki
{{#switch:
<!--If no or empty "demospace" parameter then detect namespace-->
{{#if:{{{demospace|}}}
| {{lc: {{{demospace}}} }} <!--Use lower case "demospace"-->
| {{#ifeq:{{NAMESPACE}}|{{ns:Template}}
| template
| other
}}
}}
| template = {{{1|}}}
| other
| #default = {{{2|}}}
}}<!--End switch--><noinclude>
{{documentation}}
<!-- Add categories and interwikis to the /doc subpage, not here! -->
</noinclude>
06fb13d264df967b5232141067eb7d2b67372d76
Template:Lua
10
36
63
2019-03-20T22:04:45Z
en>RMCD bot
0
Removing notice of move discussion
wikitext
text/x-wiki
<includeonly>{{#invoke:Lua banner|main}}</includeonly><noinclude>
{{Lua|Module:Lua banner}}
{{documentation}}
<!-- Categories go on the /doc subpage and interwikis go on Wikidata. -->
</noinclude>
dba3962144dacd289dbc34f50fbe0a7bf6d7f2f7
Template:Ombox
10
41
73
2020-04-01T06:12:36Z
en>MusikAnimal
0
1 revision imported
wikitext
text/x-wiki
{{#invoke:Message box|ombox}}<noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
0e54065432d540737b9e56c4e3a8e7f74d4534ea
Template:Para
10
42
75
2020-04-01T06:12:37Z
en>MusikAnimal
0
1 revision imported
wikitext
text/x-wiki
<code class="nowrap" style="{{SAFESUBST:<noinclude />#if:{{{plain|}}}|border: none; background-color: inherit;}} {{SAFESUBST:<noinclude />#if:{{{plain|}}}{{{mxt|}}}{{{green|}}}{{{!mxt|}}}{{{red|}}}|color: {{SAFESUBST:<noinclude />#if:{{{mxt|}}}{{{green|}}}|#006400|{{SAFESUBST:<noinclude />#if:{{{!mxt|}}}{{{red|}}}|#8B0000|inherit}}}};}} {{SAFESUBST:<noinclude />#if:{{{style|}}}|{{{style}}}}}">|{{SAFESUBST:<noinclude />#if:{{{1|}}}|{{{1}}}=}}{{{2|}}}</code><noinclude>
{{Documentation}}
<!--Categories and interwikis go near the bottom of the /doc subpage.-->
</noinclude>
96ef5dce1fb3a5c1b6648eac125a2496944a852e
Module:Arguments
828
60
111
2020-04-01T06:12:40Z
en>MusikAnimal
0
1 revision imported
Scribunto
text/plain
-- This module provides easy processing of arguments passed to Scribunto from
-- #invoke. It is intended for use by other Lua modules, and should not be
-- called from #invoke directly.
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local arguments = {}
-- Generate four different tidyVal functions, so that we don't have to check the
-- options every time we call it.
local function tidyValDefault(key, val)
if type(val) == 'string' then
val = val:match('^%s*(.-)%s*$')
if val == '' then
return nil
else
return val
end
else
return val
end
end
local function tidyValTrimOnly(key, val)
if type(val) == 'string' then
return val:match('^%s*(.-)%s*$')
else
return val
end
end
local function tidyValRemoveBlanksOnly(key, val)
if type(val) == 'string' then
if val:find('%S') then
return val
else
return nil
end
else
return val
end
end
local function tidyValNoChange(key, val)
return val
end
local function matchesTitle(given, title)
local tp = type( given )
return (tp == 'string' or tp == 'number') and mw.title.new( given ).prefixedText == title
end
local translate_mt = { __index = function(t, k) return k end }
function arguments.getArgs(frame, options)
checkType('getArgs', 1, frame, 'table', true)
checkType('getArgs', 2, options, 'table', true)
frame = frame or {}
options = options or {}
--[[
-- Set up argument translation.
--]]
options.translate = options.translate or {}
if getmetatable(options.translate) == nil then
setmetatable(options.translate, translate_mt)
end
if options.backtranslate == nil then
options.backtranslate = {}
for k,v in pairs(options.translate) do
options.backtranslate[v] = k
end
end
if options.backtranslate and getmetatable(options.backtranslate) == nil then
setmetatable(options.backtranslate, {
__index = function(t, k)
if options.translate[k] ~= k then
return nil
else
return k
end
end
})
end
--[[
-- Get the argument tables. If we were passed a valid frame object, get the
-- frame arguments (fargs) and the parent frame arguments (pargs), depending
-- on the options set and on the parent frame's availability. If we weren't
-- passed a valid frame object, we are being called from another Lua module
-- or from the debug console, so assume that we were passed a table of args
-- directly, and assign it to a new variable (luaArgs).
--]]
local fargs, pargs, luaArgs
if type(frame.args) == 'table' and type(frame.getParent) == 'function' then
if options.wrappers then
--[[
-- The wrappers option makes Module:Arguments look up arguments in
-- either the frame argument table or the parent argument table, but
-- not both. This means that users can use either the #invoke syntax
-- or a wrapper template without the loss of performance associated
-- with looking arguments up in both the frame and the parent frame.
-- Module:Arguments will look up arguments in the parent frame
-- if it finds the parent frame's title in options.wrapper;
-- otherwise it will look up arguments in the frame object passed
-- to getArgs.
--]]
local parent = frame:getParent()
if not parent then
fargs = frame.args
else
local title = parent:getTitle():gsub('/sandbox$', '')
local found = false
if matchesTitle(options.wrappers, title) then
found = true
elseif type(options.wrappers) == 'table' then
for _,v in pairs(options.wrappers) do
if matchesTitle(v, title) then
found = true
break
end
end
end
-- We test for false specifically here so that nil (the default) acts like true.
if found or options.frameOnly == false then
pargs = parent.args
end
if not found or options.parentOnly == false then
fargs = frame.args
end
end
else
-- options.wrapper isn't set, so check the other options.
if not options.parentOnly then
fargs = frame.args
end
if not options.frameOnly then
local parent = frame:getParent()
pargs = parent and parent.args or nil
end
end
if options.parentFirst then
fargs, pargs = pargs, fargs
end
else
luaArgs = frame
end
-- Set the order of precedence of the argument tables. If the variables are
-- nil, nothing will be added to the table, which is how we avoid clashes
-- between the frame/parent args and the Lua args.
local argTables = {fargs}
argTables[#argTables + 1] = pargs
argTables[#argTables + 1] = luaArgs
--[[
-- Generate the tidyVal function. If it has been specified by the user, we
-- use that; if not, we choose one of four functions depending on the
-- options chosen. This is so that we don't have to call the options table
-- every time the function is called.
--]]
local tidyVal = options.valueFunc
if tidyVal then
if type(tidyVal) ~= 'function' then
error(
"bad value assigned to option 'valueFunc'"
.. '(function expected, got '
.. type(tidyVal)
.. ')',
2
)
end
elseif options.trim ~= false then
if options.removeBlanks ~= false then
tidyVal = tidyValDefault
else
tidyVal = tidyValTrimOnly
end
else
if options.removeBlanks ~= false then
tidyVal = tidyValRemoveBlanksOnly
else
tidyVal = tidyValNoChange
end
end
--[[
-- Set up the args, metaArgs and nilArgs tables. args will be the one
-- accessed from functions, and metaArgs will hold the actual arguments. Nil
-- arguments are memoized in nilArgs, and the metatable connects all of them
-- together.
--]]
local args, metaArgs, nilArgs, metatable = {}, {}, {}, {}
setmetatable(args, metatable)
local function mergeArgs(tables)
--[[
-- Accepts multiple tables as input and merges their keys and values
-- into one table. If a value is already present it is not overwritten;
-- tables listed earlier have precedence. We are also memoizing nil
-- values, which can be overwritten if they are 's' (soft).
--]]
for _, t in ipairs(tables) do
for key, val in pairs(t) do
if metaArgs[key] == nil and nilArgs[key] ~= 'h' then
local tidiedVal = tidyVal(key, val)
if tidiedVal == nil then
nilArgs[key] = 's'
else
metaArgs[key] = tidiedVal
end
end
end
end
end
--[[
-- Define metatable behaviour. Arguments are memoized in the metaArgs table,
-- and are only fetched from the argument tables once. Fetching arguments
-- from the argument tables is the most resource-intensive step in this
-- module, so we try and avoid it where possible. For this reason, nil
-- arguments are also memoized, in the nilArgs table. Also, we keep a record
-- in the metatable of when pairs and ipairs have been called, so we do not
-- run pairs and ipairs on the argument tables more than once. We also do
-- not run ipairs on fargs and pargs if pairs has already been run, as all
-- the arguments will already have been copied over.
--]]
metatable.__index = function (t, key)
--[[
-- Fetches an argument when the args table is indexed. First we check
-- to see if the value is memoized, and if not we try and fetch it from
-- the argument tables. When we check memoization, we need to check
-- metaArgs before nilArgs, as both can be non-nil at the same time.
-- If the argument is not present in metaArgs, we also check whether
-- pairs has been run yet. If pairs has already been run, we return nil.
-- This is because all the arguments will have already been copied into
-- metaArgs by the mergeArgs function, meaning that any other arguments
-- must be nil.
--]]
if type(key) == 'string' then
key = options.translate[key]
end
local val = metaArgs[key]
if val ~= nil then
return val
elseif metatable.donePairs or nilArgs[key] then
return nil
end
for _, argTable in ipairs(argTables) do
local argTableVal = tidyVal(key, argTable[key])
if argTableVal ~= nil then
metaArgs[key] = argTableVal
return argTableVal
end
end
nilArgs[key] = 'h'
return nil
end
metatable.__newindex = function (t, key, val)
-- This function is called when a module tries to add a new value to the
-- args table, or tries to change an existing value.
if type(key) == 'string' then
key = options.translate[key]
end
if options.readOnly then
error(
'could not write to argument table key "'
.. tostring(key)
.. '"; the table is read-only',
2
)
elseif options.noOverwrite and args[key] ~= nil then
error(
'could not write to argument table key "'
.. tostring(key)
.. '"; overwriting existing arguments is not permitted',
2
)
elseif val == nil then
--[[
-- If the argument is to be overwritten with nil, we need to erase
-- the value in metaArgs, so that __index, __pairs and __ipairs do
-- not use a previous existing value, if present; and we also need
-- to memoize the nil in nilArgs, so that the value isn't looked
-- up in the argument tables if it is accessed again.
--]]
metaArgs[key] = nil
nilArgs[key] = 'h'
else
metaArgs[key] = val
end
end
local function translatenext(invariant)
local k, v = next(invariant.t, invariant.k)
invariant.k = k
if k == nil then
return nil
elseif type(k) ~= 'string' or not options.backtranslate then
return k, v
else
local backtranslate = options.backtranslate[k]
if backtranslate == nil then
-- Skip this one. This is a tail call, so this won't cause stack overflow
return translatenext(invariant)
else
return backtranslate, v
end
end
end
metatable.__pairs = function ()
-- Called when pairs is run on the args table.
if not metatable.donePairs then
mergeArgs(argTables)
metatable.donePairs = true
end
return translatenext, { t = metaArgs }
end
local function inext(t, i)
-- This uses our __index metamethod
local v = t[i + 1]
if v ~= nil then
return i + 1, v
end
end
metatable.__ipairs = function (t)
-- Called when ipairs is run on the args table.
return inext, t, 0
end
return args
end
return arguments
3134ecce8429b810d445e29eae115e2ae4c36c53
Module:Yesno
828
90
171
2020-04-01T06:27:55Z
en>MusikAnimal
0
Undid revision 948472533 by [[Special:Contributions/w>Vogone|w>Vogone]] ([[User talk:w>Vogone|talk]])
Scribunto
text/plain
-- Function allowing for consistent treatment of boolean-like wikitext input.
-- It works similarly to the template {{yesno}}.
return function (val, default)
-- If your wiki uses non-ascii characters for any of "yes", "no", etc., you
-- should replace "val:lower()" with "mw.ustring.lower(val)" in the
-- following line.
val = type(val) == 'string' and val:lower() or val
if val == nil then
return nil
elseif val == true
or val == 'yes'
or val == 'y'
or val == 'true'
or val == 't'
or val == 'on'
or tonumber(val) == 1
then
return true
elseif val == false
or val == 'no'
or val == 'n'
or val == 'false'
or val == 'f'
or val == 'off'
or tonumber(val) == 0
then
return false
else
return default
end
end
f767643e7d12126d020d88d662a3dd057817b9dc
Module:No globals
828
78
147
2020-04-01T06:28:55Z
en>MusikAnimal
0
Undid revision 948472525 by [[Special:Contributions/w>DiBabelYurikBot|w>DiBabelYurikBot]] ([[User talk:w>DiBabelYurikBot|talk]])
Scribunto
text/plain
local mt = getmetatable(_G) or {}
function mt.__index (t, k)
if k ~= 'arg' then
error('Tried to read nil global ' .. tostring(k), 2)
end
return nil
end
function mt.__newindex(t, k, v)
if k ~= 'arg' then
error('Tried to write global ' .. tostring(k), 2)
end
rawset(t, k, v)
end
setmetatable(_G, mt)
8ce3969f7d53b08bd00dabe4cc9780bc6afd412a
Module:File link
828
67
125
2020-04-01T06:31:54Z
en>MusikAnimal
0
Undid revision 948472508 by [[Special:Contributions/w>IPad365|w>IPad365]] ([[User talk:w>IPad365|talk]])
Scribunto
text/plain
-- This module provides a library for formatting file wikilinks.
local yesno = require('Module:Yesno')
local checkType = require('libraryUtil').checkType
local p = {}
function p._main(args)
checkType('_main', 1, args, 'table')
-- This is basically libraryUtil.checkTypeForNamedArg, but we are rolling our
-- own function to get the right error level.
local function checkArg(key, val, level)
if type(val) ~= 'string' then
error(string.format(
"type error in '%s' parameter of '_main' (expected string, got %s)",
key, type(val)
), level)
end
end
local ret = {}
-- Adds a positional parameter to the buffer.
local function addPositional(key)
local val = args[key]
if not val then
return nil
end
checkArg(key, val, 4)
ret[#ret + 1] = val
end
-- Adds a named parameter to the buffer. We assume that the parameter name
-- is the same as the argument key.
local function addNamed(key)
local val = args[key]
if not val then
return nil
end
checkArg(key, val, 4)
ret[#ret + 1] = key .. '=' .. val
end
-- Filename
checkArg('file', args.file, 3)
ret[#ret + 1] = 'File:' .. args.file
-- Format
if args.format then
checkArg('format', args.format)
if args.formatfile then
checkArg('formatfile', args.formatfile)
ret[#ret + 1] = args.format .. '=' .. args.formatfile
else
ret[#ret + 1] = args.format
end
end
-- Border
if yesno(args.border) then
ret[#ret + 1] = 'border'
end
addPositional('location')
addPositional('alignment')
addPositional('size')
addNamed('upright')
addNamed('link')
addNamed('alt')
addNamed('page')
addNamed('class')
addNamed('lang')
addNamed('start')
addNamed('end')
addNamed('thumbtime')
addPositional('caption')
return string.format('[[%s]]', table.concat(ret, '|'))
end
function p.main(frame)
local origArgs = require('Module:Arguments').getArgs(frame, {
wrappers = 'Template:File link'
})
if not origArgs.file then
error("'file' parameter missing from [[Template:File link]]", 0)
end
-- Copy the arguments that were passed to a new table to avoid looking up
-- every possible parameter in the frame object.
local args = {}
for k, v in pairs(origArgs) do
-- Make _BLANK a special argument to add a blank parameter. For use in
-- conditional templates etc. it is useful for blank arguments to be
-- ignored, but we still need a way to specify them so that we can do
-- things like [[File:Example.png|link=]].
if v == '_BLANK' then
v = ''
end
args[k] = v
end
return p._main(args)
end
return p
66925f088d11530f2482f04181a3baaaa0ad3d0c
Template:Sandbox other
10
43
77
2020-04-03T00:08:09Z
en>Evad37
0
Also match subpage names beginning with "sandbox", per [[Template_talk:Sandbox_other#Template-protected_edit_request_on_28_March_2020|edit request]]
wikitext
text/x-wiki
{{#if:{{#ifeq:{{#invoke:String|sublength|s={{SUBPAGENAME}}|i=0|len=7}}|sandbox|1}}{{#ifeq:{{SUBPAGENAME}}|doc|1}}{{#invoke:String|match|{{PAGENAME}}|/sandbox/styles.css$|plain=false|nomatch=}}|{{{1|}}}|{{{2|}}}}}<!--
--><noinclude>{{documentation}}</noinclude>
91e4ae891d6b791615152c1fbc971414961ba872
Template:CSS3 multiple column layout
10
19
29
2020-06-21T04:16:29Z
en>IagoQnsi
0
clear:right (to play nicely with other right-floated templates)
wikitext
text/x-wiki
{| class="wikitable" style="float:right;clear:right;font-size:90%;margin:0 0 1em 1em;text-align:center;line-height:1.25em;"
|+ style="line-height:1.25em;padding-bottom:0.25em;"| CSS3 multiple-column layout browser support
|-
! Property !! [[Internet Explorer|Internet<br />Explorer]] !! [[Firefox]] !! [[Safari (web browser)|Safari]] !! [[Google Chrome|Chrome]] !! [[Opera (web browser)|Opera]]
|-
| column-width<br/>column-count
| {{yes|≥ 10<br />{{smaller|(2012)}}}} || {{yes|≥ 1.5<br />{{smaller|(2005)}}}} || {{yes|≥ 3<br />{{smaller|(2007)}}}} || {{yes|≥ 1<br />{{smaller|(2008)}}}} || {{yes|≥ 11.1<br />{{smaller|(2011)}}}}
|-
| columns
| {{yes|≥ 10<br />{{smaller|(2012)}}}} || {{yes|≥ 9<br />{{smaller|(2011)}}}} || {{yes|≥ 3<br />{{smaller|(2007)}}}} || {{yes|≥ 1<br />{{smaller|(2008)}}}} || {{yes|≥ 11.1<br />{{smaller|(2011)}}}}
|-
| break-before<br/>break-after<br/>break-inside
| {{yes|≥ 10<br />{{smaller|(2012)}}}} || {{maybe|≥ 65<br />{{smaller|(2019)}}}}<!-- no break-after --> || {{yes|≥ 10<br />{{smaller|(2016)}}}} || {{maybe|≥ 65<br />{{smaller|(2016)}}}}<!-- no break-after --> || {{maybe|≥ 15<br />{{smaller|(2013)}}}}<!-- no break-after -->
|-
|colspan="6" style="text-align:right"|{{navbar|CSS3 multiple column layout|mini=y}}
|}<noinclude>
{{Documentation}}
</noinclude>
c44910bab9b28d152d3b51049cbfed9bf55dcca5
Template:Uses TemplateStyles
10
56
103
2020-06-21T18:00:10Z
en>MusikBot II
0
Protected "[[Template:Uses TemplateStyles]]": [[Wikipedia:High-risk templates|High-risk template or module]] ([[User:MusikBot II/TemplateProtector|more info]]) ([Edit=Require autoconfirmed or confirmed access] (indefinite))
wikitext
text/x-wiki
<includeonly>{{#invoke:Uses TemplateStyles|main}}</includeonly><noinclude>
{{Uses TemplateStyles|Template:Uses TemplateStyles/example.css|nocat=true}}
{{documentation}}
<!-- Categories go on the /doc subpage and interwikis go on Wikidata. -->
</noinclude>
7e26d8f257e302bd8a3dcbe53f52741ae0884f74
Module:Section link
828
81
153
2020-06-30T19:17:25Z
en>Primefac
0
fix error for when {{}} are used inside of the slink (TPER)
Scribunto
text/plain
-- This module implements {{section link}}.
require('Module:No globals');
local checkType = require('libraryUtil').checkType
local p = {}
local function makeSectionLink(page, section, display)
display = display or section
page = page or ''
-- MediaWiki doesn't allow these in `page`, so only need to do for `section`
if type(section) == 'string' then
section = string.gsub(section, "{", "{")
section = string.gsub(section, "}", "}")
end
return string.format('[[%s#%s|%s]]', page, section, display)
end
local function normalizeTitle(title)
title = mw.ustring.gsub(mw.ustring.gsub(title, "'", ""), '"', '')
title = mw.ustring.gsub(title, "%b<>", "")
return mw.title.new(title).prefixedText
end
function p._main(page, sections, options, title)
-- Validate input.
checkType('_main', 1, page, 'string', true)
checkType('_main', 3, options, 'table', true)
if sections == nil then
sections = {}
elseif type(sections) == 'string' then
sections = {sections}
elseif type(sections) ~= 'table' then
error(string.format(
"type error in argument #2 to '_main' " ..
"(string, table or nil expected, got %s)",
type(sections)
), 2)
end
options = options or {}
title = title or mw.title.getCurrentTitle()
-- Deal with blank page names elegantly
if page and not page:find('%S') then
page = nil
options.nopage = true
end
-- Make the link(s).
local isShowingPage = not options.nopage
if #sections <= 1 then
local linkPage = page or ''
local section = sections[1] or 'Notes'
local display = '§ ' .. section
if isShowingPage then
page = page or title.prefixedText
if options.display and options.display ~= '' then
if normalizeTitle(options.display) == normalizeTitle(page) then
display = options.display .. ' ' .. display
else
error(string.format(
'Display title "%s" was ignored since it is ' ..
"not equivalent to the page's actual title",
options.display
), 0)
end
else
display = page .. ' ' .. display
end
end
return makeSectionLink(linkPage, section, display)
else
-- Multiple sections. First, make a list of the links to display.
local ret = {}
for i, section in ipairs(sections) do
ret[i] = makeSectionLink(page, section)
end
-- Assemble the list of links into a string with mw.text.listToText.
-- We use the default separator for mw.text.listToText, but a custom
-- conjunction. There is also a special case conjunction if we only
-- have two links.
local conjunction
if #sections == 2 then
conjunction = '​ and '
else
conjunction = ', and '
end
ret = mw.text.listToText(ret, nil, conjunction)
-- Add the intro text.
local intro = '§§ '
if isShowingPage then
intro = (page or title.prefixedText) .. ' ' .. intro
end
ret = intro .. ret
return ret
end
end
function p.main(frame)
local yesno = require('Module:Yesno')
local args = require('Module:Arguments').getArgs(frame, {
wrappers = 'Template:Section link',
valueFunc = function (key, value)
value = value:match('^%s*(.-)%s*$') -- Trim whitespace
-- Allow blank first parameters, as the wikitext template does this.
if value ~= '' or key == 1 then
return value
end
end
})
for k, v in pairs(args) do -- replace underscores in the positional parameter values
if 'number' == type(k) then
if not yesno (args['keep-underscores']) then -- unless |keep-underscores=yes
args[k] = mw.uri.decode (v, 'WIKI'); -- percent-decode; replace underscores with space characters
else
args[k] = mw.uri.decode (v, 'PATH'); -- percent-decode; retain underscores
end
end
end
-- Sort the arguments.
local page
local sections, options = {}, {}
for k, v in pairs(args) do
if k == 1 then
-- Doing this in the loop because of a bug in [[Module:Arguments]]
-- when using pairs with deleted arguments.
page = mw.text.decode(v, true)
elseif type(k) == 'number' then
sections[k] = v
else
options[k] = v
end
end
options.nopage = yesno (options.nopage); -- make boolean
-- Extract section from page, if present
if page then
local p, s = page:match('^(.-)#(.*)$')
if p then page, sections[1] = p, s end
end
-- Compress the sections array.
local function compressArray(t)
local nums, ret = {}, {}
for num in pairs(t) do
nums[#nums + 1] = num
end
table.sort(nums)
for i, num in ipairs(nums) do
ret[i] = t[num]
end
return ret
end
sections = compressArray(sections)
return p._main(page, sections, options)
end
return p
712a4e62cbae4ef21220d701037b207aec105d45
Module:String
828
82
155
2020-08-02T15:49:42Z
en>RexxS
0
separate annotations for str.match from those for str._match
Scribunto
text/plain
--[[
This module is intended to provide access to basic string functions.
Most of the functions provided here can be invoked with named parameters,
unnamed parameters, or a mixture. If named parameters are used, Mediawiki will
automatically remove any leading or trailing whitespace from the parameter.
Depending on the intended use, it may be advantageous to either preserve or
remove such whitespace.
Global options
ignore_errors: If set to 'true' or 1, any error condition will result in
an empty string being returned rather than an error message.
error_category: If an error occurs, specifies the name of a category to
include with the error message. The default category is
[Category:Errors reported by Module String].
no_category: If set to 'true' or 1, no category will be added if an error
is generated.
Unit tests for this module are available at Module:String/tests.
]]
local str = {}
--[[
len
This function returns the length of the target string.
Usage:
{{#invoke:String|len|target_string|}}
OR
{{#invoke:String|len|s=target_string}}
Parameters
s: The string whose length to report
If invoked using named parameters, Mediawiki will automatically remove any leading or
trailing whitespace from the target string.
]]
function str.len( frame )
local new_args = str._getParameters( frame.args, {'s'} )
local s = new_args['s'] or ''
return mw.ustring.len( s )
end
--[[
sub
This function returns a substring of the target string at specified indices.
Usage:
{{#invoke:String|sub|target_string|start_index|end_index}}
OR
{{#invoke:String|sub|s=target_string|i=start_index|j=end_index}}
Parameters
s: The string to return a subset of
i: The fist index of the substring to return, defaults to 1.
j: The last index of the string to return, defaults to the last character.
The first character of the string is assigned an index of 1. If either i or j
is a negative value, it is interpreted the same as selecting a character by
counting from the end of the string. Hence, a value of -1 is the same as
selecting the last character of the string.
If the requested indices are out of range for the given string, an error is
reported.
]]
function str.sub( frame )
local new_args = str._getParameters( frame.args, { 's', 'i', 'j' } )
local s = new_args['s'] or ''
local i = tonumber( new_args['i'] ) or 1
local j = tonumber( new_args['j'] ) or -1
local len = mw.ustring.len( s )
-- Convert negatives for range checking
if i < 0 then
i = len + i + 1
end
if j < 0 then
j = len + j + 1
end
if i > len or j > len or i < 1 or j < 1 then
return str._error( 'String subset index out of range' )
end
if j < i then
return str._error( 'String subset indices out of order' )
end
return mw.ustring.sub( s, i, j )
end
--[[
This function implements that features of {{str sub old}} and is kept in order
to maintain these older templates.
]]
function str.sublength( frame )
local i = tonumber( frame.args.i ) or 0
local len = tonumber( frame.args.len )
return mw.ustring.sub( frame.args.s, i + 1, len and ( i + len ) )
end
--[[
_match
This function returns a substring from the source string that matches a
specified pattern. It is exported for use in other modules
Usage:
strmatch = require("Module:String")._match
sresult = strmatch( s, pattern, start, match, plain, nomatch )
Parameters
s: The string to search
pattern: The pattern or string to find within the string
start: The index within the source string to start the search. The first
character of the string has index 1. Defaults to 1.
match: In some cases it may be possible to make multiple matches on a single
string. This specifies which match to return, where the first match is
match= 1. If a negative number is specified then a match is returned
counting from the last match. Hence match = -1 is the same as requesting
the last match. Defaults to 1.
plain: A flag indicating that the pattern should be understood as plain
text. Defaults to false.
nomatch: If no match is found, output the "nomatch" value rather than an error.
For information on constructing Lua patterns, a form of [regular expression], see:
* http://www.lua.org/manual/5.1/manual.html#5.4.1
* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns
* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Ustring_patterns
]]
-- This sub-routine is exported for use in other modules
function str._match( s, pattern, start, match_index, plain_flag, nomatch )
if s == '' then
return str._error( 'Target string is empty' )
end
if pattern == '' then
return str._error( 'Pattern string is empty' )
end
start = tonumber(start) or 1
if math.abs(start) < 1 or math.abs(start) > mw.ustring.len( s ) then
return str._error( 'Requested start is out of range' )
end
if match_index == 0 then
return str._error( 'Match index is out of range' )
end
if plain_flag then
pattern = str._escapePattern( pattern )
end
local result
if match_index == 1 then
-- Find first match is simple case
result = mw.ustring.match( s, pattern, start )
else
if start > 1 then
s = mw.ustring.sub( s, start )
end
local iterator = mw.ustring.gmatch(s, pattern)
if match_index > 0 then
-- Forward search
for w in iterator do
match_index = match_index - 1
if match_index == 0 then
result = w
break
end
end
else
-- Reverse search
local result_table = {}
local count = 1
for w in iterator do
result_table[count] = w
count = count + 1
end
result = result_table[ count + match_index ]
end
end
if result == nil then
if nomatch == nil then
return str._error( 'Match not found' )
else
return nomatch
end
else
return result
end
end
--[[
match
This function returns a substring from the source string that matches a
specified pattern.
Usage:
{{#invoke:String|match|source_string|pattern_string|start_index|match_number|plain_flag|nomatch_output}}
OR
{{#invoke:String|match|s=source_string|pattern=pattern_string|start=start_index
|match=match_number|plain=plain_flag|nomatch=nomatch_output}}
Parameters
s: The string to search
pattern: The pattern or string to find within the string
start: The index within the source string to start the search. The first
character of the string has index 1. Defaults to 1.
match: In some cases it may be possible to make multiple matches on a single
string. This specifies which match to return, where the first match is
match= 1. If a negative number is specified then a match is returned
counting from the last match. Hence match = -1 is the same as requesting
the last match. Defaults to 1.
plain: A flag indicating that the pattern should be understood as plain
text. Defaults to false.
nomatch: If no match is found, output the "nomatch" value rather than an error.
If invoked using named parameters, Mediawiki will automatically remove any leading or
trailing whitespace from each string. In some circumstances this is desirable, in
other cases one may want to preserve the whitespace.
If the match_number or start_index are out of range for the string being queried, then
this function generates an error. An error is also generated if no match is found.
If one adds the parameter ignore_errors=true, then the error will be suppressed and
an empty string will be returned on any failure.
For information on constructing Lua patterns, a form of [regular expression], see:
* http://www.lua.org/manual/5.1/manual.html#5.4.1
* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns
* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Ustring_patterns
]]
-- This is the entry point for #invoke:String|match
function str.match( frame )
local new_args = str._getParameters( frame.args, {'s', 'pattern', 'start', 'match', 'plain', 'nomatch'} )
local s = new_args['s'] or ''
local start = tonumber( new_args['start'] ) or 1
local plain_flag = str._getBoolean( new_args['plain'] or false )
local pattern = new_args['pattern'] or ''
local match_index = math.floor( tonumber(new_args['match']) or 1 )
local nomatch = new_args['nomatch']
return str._match( s, pattern, start, match_index, plain_flag, nomatch )
end
--[[
pos
This function returns a single character from the target string at position pos.
Usage:
{{#invoke:String|pos|target_string|index_value}}
OR
{{#invoke:String|pos|target=target_string|pos=index_value}}
Parameters
target: The string to search
pos: The index for the character to return
If invoked using named parameters, Mediawiki will automatically remove any leading or
trailing whitespace from the target string. In some circumstances this is desirable, in
other cases one may want to preserve the whitespace.
The first character has an index value of 1.
If one requests a negative value, this function will select a character by counting backwards
from the end of the string. In other words pos = -1 is the same as asking for the last character.
A requested value of zero, or a value greater than the length of the string returns an error.
]]
function str.pos( frame )
local new_args = str._getParameters( frame.args, {'target', 'pos'} )
local target_str = new_args['target'] or ''
local pos = tonumber( new_args['pos'] ) or 0
if pos == 0 or math.abs(pos) > mw.ustring.len( target_str ) then
return str._error( 'String index out of range' )
end
return mw.ustring.sub( target_str, pos, pos )
end
--[[
str_find
This function duplicates the behavior of {{str_find}}, including all of its quirks.
This is provided in order to support existing templates, but is NOT RECOMMENDED for
new code and templates. New code is recommended to use the "find" function instead.
Returns the first index in "source" that is a match to "target". Indexing is 1-based,
and the function returns -1 if the "target" string is not present in "source".
Important Note: If the "target" string is empty / missing, this function returns a
value of "1", which is generally unexpected behavior, and must be accounted for
separatetly.
]]
function str.str_find( frame )
local new_args = str._getParameters( frame.args, {'source', 'target'} )
local source_str = new_args['source'] or ''
local target_str = new_args['target'] or ''
if target_str == '' then
return 1
end
local start = mw.ustring.find( source_str, target_str, 1, true )
if start == nil then
start = -1
end
return start
end
--[[
find
This function allows one to search for a target string or pattern within another
string.
Usage:
{{#invoke:String|find|source_str|target_string|start_index|plain_flag}}
OR
{{#invoke:String|find|source=source_str|target=target_str|start=start_index|plain=plain_flag}}
Parameters
source: The string to search
target: The string or pattern to find within source
start: The index within the source string to start the search, defaults to 1
plain: Boolean flag indicating that target should be understood as plain
text and not as a Lua style regular expression, defaults to true
If invoked using named parameters, Mediawiki will automatically remove any leading or
trailing whitespace from the parameter. In some circumstances this is desirable, in
other cases one may want to preserve the whitespace.
This function returns the first index >= "start" where "target" can be found
within "source". Indices are 1-based. If "target" is not found, then this
function returns 0. If either "source" or "target" are missing / empty, this
function also returns 0.
This function should be safe for UTF-8 strings.
]]
function str.find( frame )
local new_args = str._getParameters( frame.args, {'source', 'target', 'start', 'plain' } )
local source_str = new_args['source'] or ''
local pattern = new_args['target'] or ''
local start_pos = tonumber(new_args['start']) or 1
local plain = new_args['plain'] or true
if source_str == '' or pattern == '' then
return 0
end
plain = str._getBoolean( plain )
local start = mw.ustring.find( source_str, pattern, start_pos, plain )
if start == nil then
start = 0
end
return start
end
--[[
replace
This function allows one to replace a target string or pattern within another
string.
Usage:
{{#invoke:String|replace|source_str|pattern_string|replace_string|replacement_count|plain_flag}}
OR
{{#invoke:String|replace|source=source_string|pattern=pattern_string|replace=replace_string|
count=replacement_count|plain=plain_flag}}
Parameters
source: The string to search
pattern: The string or pattern to find within source
replace: The replacement text
count: The number of occurences to replace, defaults to all.
plain: Boolean flag indicating that pattern should be understood as plain
text and not as a Lua style regular expression, defaults to true
]]
function str.replace( frame )
local new_args = str._getParameters( frame.args, {'source', 'pattern', 'replace', 'count', 'plain' } )
local source_str = new_args['source'] or ''
local pattern = new_args['pattern'] or ''
local replace = new_args['replace'] or ''
local count = tonumber( new_args['count'] )
local plain = new_args['plain'] or true
if source_str == '' or pattern == '' then
return source_str
end
plain = str._getBoolean( plain )
if plain then
pattern = str._escapePattern( pattern )
replace = mw.ustring.gsub( replace, "%%", "%%%%" ) --Only need to escape replacement sequences.
end
local result
if count ~= nil then
result = mw.ustring.gsub( source_str, pattern, replace, count )
else
result = mw.ustring.gsub( source_str, pattern, replace )
end
return result
end
--[[
simple function to pipe string.rep to templates.
]]
function str.rep( frame )
local repetitions = tonumber( frame.args[2] )
if not repetitions then
return str._error( 'function rep expects a number as second parameter, received "' .. ( frame.args[2] or '' ) .. '"' )
end
return string.rep( frame.args[1] or '', repetitions )
end
--[[
escapePattern
This function escapes special characters from a Lua string pattern. See [1]
for details on how patterns work.
[1] https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns
Usage:
{{#invoke:String|escapePattern|pattern_string}}
Parameters
pattern_string: The pattern string to escape.
]]
function str.escapePattern( frame )
local pattern_str = frame.args[1]
if not pattern_str then
return str._error( 'No pattern string specified' )
end
local result = str._escapePattern( pattern_str )
return result
end
--[[
count
This function counts the number of occurrences of one string in another.
]]
function str.count(frame)
local args = str._getParameters(frame.args, {'source', 'pattern', 'plain'})
local source = args.source or ''
local pattern = args.pattern or ''
local plain = str._getBoolean(args.plain or true)
if plain then
pattern = str._escapePattern(pattern)
end
local _, count = mw.ustring.gsub(source, pattern, '')
return count
end
--[[
endswith
This function determines whether a string ends with another string.
]]
function str.endswith(frame)
local args = str._getParameters(frame.args, {'source', 'pattern'})
local source = args.source or ''
local pattern = args.pattern or ''
if pattern == '' then
-- All strings end with the empty string.
return "yes"
end
if mw.ustring.sub(source, -mw.ustring.len(pattern), -1) == pattern then
return "yes"
else
return ""
end
end
--[[
join
Join all non empty arguments together; the first argument is the separator.
Usage:
{{#invoke:String|join|sep|one|two|three}}
]]
function str.join(frame)
local args = {}
local sep
for _, v in ipairs( frame.args ) do
if sep then
if v ~= '' then
table.insert(args, v)
end
else
sep = v
end
end
return table.concat( args, sep or '' )
end
--[[
Helper function that populates the argument list given that user may need to use a mix of
named and unnamed parameters. This is relevant because named parameters are not
identical to unnamed parameters due to string trimming, and when dealing with strings
we sometimes want to either preserve or remove that whitespace depending on the application.
]]
function str._getParameters( frame_args, arg_list )
local new_args = {}
local index = 1
local value
for _, arg in ipairs( arg_list ) do
value = frame_args[arg]
if value == nil then
value = frame_args[index]
index = index + 1
end
new_args[arg] = value
end
return new_args
end
--[[
Helper function to handle error messages.
]]
function str._error( error_str )
local frame = mw.getCurrentFrame()
local error_category = frame.args.error_category or 'Errors reported by Module String'
local ignore_errors = frame.args.ignore_errors or false
local no_category = frame.args.no_category or false
if str._getBoolean(ignore_errors) then
return ''
end
local error_str = '<strong class="error">String Module Error: ' .. error_str .. '</strong>'
if error_category ~= '' and not str._getBoolean( no_category ) then
error_str = '[[Category:' .. error_category .. ']]' .. error_str
end
return error_str
end
--[[
Helper Function to interpret boolean strings
]]
function str._getBoolean( boolean_str )
local boolean_value
if type( boolean_str ) == 'string' then
boolean_str = boolean_str:lower()
if boolean_str == 'false' or boolean_str == 'no' or boolean_str == '0'
or boolean_str == '' then
boolean_value = false
else
boolean_value = true
end
elseif type( boolean_str ) == 'boolean' then
boolean_value = boolean_str
else
error( 'No boolean value found' )
end
return boolean_value
end
--[[
Helper function that escapes all pattern characters so that they will be treated
as plain text.
]]
function str._escapePattern( pattern_str )
return mw.ustring.gsub( pattern_str, "([%(%)%.%%%+%-%*%?%[%^%$%]])", "%%%1" )
end
return str
6df794dd52434e0f6a372c9918f5a9dedd15f579
Template:Code
10
21
33
2020-08-09T22:30:02Z
en>Bsherr
0
adding comment
wikitext
text/x-wiki
{{#tag:syntaxhighlight|{{{code|{{{1}}}}}}|lang={{{lang|{{{2|text}}}}}}|class={{{class|}}}|id={{{id|}}}|style={{{style|}}}|inline=1}}<noinclude>
{{documentation}}
<!-- Add categories to the /doc subpage, interwikis to Wikidata, not here -->
</noinclude>
5d9b1a0980efe1b02eb91bc717438a5ae4a5ee04
Template:Yesno
10
58
107
2020-08-28T03:15:17Z
en>Xaosflux
0
add additional paramerters, "t", "f" - requested on talk - worked in sandbox /testcases
wikitext
text/x-wiki
{{<includeonly>safesubst:</includeonly>#switch: {{<includeonly>safesubst:</includeonly>lc: {{{1|¬}}} }}
|no
|n
|f
|false
|off
|0 = {{{no|<!-- null -->}}}
| = {{{blank|{{{no|<!-- null -->}}}}}}
|¬ = {{{¬|}}}
|yes
|y
|t
|true
|on
|1 = {{{yes|yes}}}
|#default = {{{def|{{{yes|yes}}}}}}
}}<noinclude>
{{Documentation}}
</noinclude>
629c2937bc5cf7cfe13cd2a598582af832782399
Module:TNT
828
83
157
2020-08-30T07:28:25Z
en>Johnuniq
0
Changed protection level for "[[Module:TNT]]": [[WP:High-risk templates|High-risk Lua module]]: per request at [[WP:RFPP]] to match [[Module:Excerpt]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))
Scribunto
text/plain
--
-- INTRO: (!!! DO NOT RENAME THIS PAGE !!!)
-- This module allows any template or module to be copy/pasted between
-- wikis without any translation changes. All translation text is stored
-- in the global Data:*.tab pages on Commons, and used everywhere.
--
-- SEE: https://www.mediawiki.org/wiki/Multilingual_Templates_and_Modules
--
-- ATTENTION:
-- Please do NOT rename this module - it has to be identical on all wikis.
-- This code is maintained at https://www.mediawiki.org/wiki/Module:TNT
-- Please do not modify it anywhere else, as it may get copied and override your changes.
-- Suggestions can be made at https://www.mediawiki.org/wiki/Module_talk:TNT
--
-- DESCRIPTION:
-- The "msg" function uses a Commons dataset to translate a message
-- with a given key (e.g. source-table), plus optional arguments
-- to the wiki markup in the current content language.
-- Use lang=xx to set language. Example:
--
-- {{#invoke:TNT | msg
-- | I18n/Template:Graphs.tab <!-- https://commons.wikimedia.org/wiki/Data:I18n/Template:Graphs.tab -->
-- | source-table <!-- uses a translation message with id = "source-table" -->
-- | param1 }} <!-- optional parameter -->
--
--
-- The "doc" function will generate the <templatedata> parameter documentation for templates.
-- This way all template parameters can be stored and localized in a single Commons dataset.
-- NOTE: "doc" assumes that all documentation is located in Data:Templatedata/* on Commons.
--
-- {{#invoke:TNT | doc | Graph:Lines }}
-- uses https://commons.wikimedia.org/wiki/Data:Templatedata/Graph:Lines.tab
-- if the current page is Template:Graph:Lines/doc
--
local p = {}
local i18nDataset = 'I18n/Module:TNT.tab'
-- Forward declaration of the local functions
local sanitizeDataset, loadData, link, formatMessage
function p.msg(frame)
local dataset, id
local params = {}
local lang = nil
for k, v in pairs(frame.args) do
if k == 1 then
dataset = mw.text.trim(v)
elseif k == 2 then
id = mw.text.trim(v)
elseif type(k) == 'number' then
table.insert(params, mw.text.trim(v))
elseif k == 'lang' and v ~= '_' then
lang = mw.text.trim(v)
end
end
return formatMessage(dataset, id, params, lang)
end
-- Identical to p.msg() above, but used from other lua modules
-- Parameters: name of dataset, message key, optional arguments
-- Example with 2 params: format('I18n/Module:TNT', 'error_bad_msgkey', 'my-key', 'my-dataset')
function p.format(dataset, key, ...)
local checkType = require('libraryUtil').checkType
checkType('format', 1, dataset, 'string')
checkType('format', 2, key, 'string')
return formatMessage(dataset, key, {...})
end
-- Identical to p.msg() above, but used from other lua modules with the language param
-- Parameters: language code, name of dataset, message key, optional arguments
-- Example with 2 params: formatInLanguage('es', I18n/Module:TNT', 'error_bad_msgkey', 'my-key', 'my-dataset')
function p.formatInLanguage(lang, dataset, key, ...)
local checkType = require('libraryUtil').checkType
checkType('formatInLanguage', 1, lang, 'string')
checkType('formatInLanguage', 2, dataset, 'string')
checkType('formatInLanguage', 3, key, 'string')
return formatMessage(dataset, key, {...}, lang)
end
-- Obsolete function that adds a 'c:' prefix to the first param.
-- "Sandbox/Sample.tab" -> 'c:Data:Sandbox/Sample.tab'
function p.link(frame)
return link(frame.args[1])
end
function p.doc(frame)
local dataset = 'Templatedata/' .. sanitizeDataset(frame.args[1])
return frame:extensionTag('templatedata', p.getTemplateData(dataset)) ..
formatMessage(i18nDataset, 'edit_doc', {link(dataset)})
end
function p.getTemplateData(dataset)
-- TODO: add '_' parameter once lua starts reindexing properly for "all" languages
local data = loadData(dataset)
local names = {}
for _, field in pairs(data.schema.fields) do
table.insert(names, field.name)
end
local params = {}
local paramOrder = {}
for _, row in pairs(data.data) do
local newVal = {}
local name = nil
for pos, val in pairs(row) do
local columnName = names[pos]
if columnName == 'name' then
name = val
else
newVal[columnName] = val
end
end
if name then
params[name] = newVal
table.insert(paramOrder, name)
end
end
-- Work around json encoding treating {"1":{...}} as an [{...}]
params['zzz123']=''
local json = mw.text.jsonEncode({
params=params,
paramOrder=paramOrder,
description=data.description
})
json = string.gsub(json,'"zzz123":"",?', "")
return json
end
-- Local functions
sanitizeDataset = function(dataset)
if not dataset then
return nil
end
dataset = mw.text.trim(dataset)
if dataset == '' then
return nil
elseif string.sub(dataset,-4) ~= '.tab' then
return dataset .. '.tab'
else
return dataset
end
end
loadData = function(dataset, lang)
dataset = sanitizeDataset(dataset)
if not dataset then
error(formatMessage(i18nDataset, 'error_no_dataset', {}))
end
-- Give helpful error to thirdparties who try and copy this module.
if not mw.ext or not mw.ext.data or not mw.ext.data.get then
error('Missing JsonConfig extension; Cannot load https://commons.wikimedia.org/wiki/Data:' .. dataset)
end
local data = mw.ext.data.get(dataset, lang)
if data == false then
if dataset == i18nDataset then
-- Prevent cyclical calls
error('Missing Commons dataset ' .. i18nDataset)
else
error(formatMessage(i18nDataset, 'error_bad_dataset', {link(dataset)}))
end
end
return data
end
-- Given a dataset name, convert it to a title with the 'commons:data:' prefix
link = function(dataset)
return 'c:Data:' .. mw.text.trim(dataset or '')
end
formatMessage = function(dataset, key, params, lang)
for _, row in pairs(loadData(dataset, lang).data) do
local id, msg = unpack(row)
if id == key then
local result = mw.message.newRawMessage(msg, unpack(params or {}))
return result:plain()
end
end
if dataset == i18nDataset then
-- Prevent cyclical calls
error('Invalid message key "' .. key .. '"')
else
error(formatMessage(i18nDataset, 'error_bad_msgkey', {key, link(dataset)}))
end
end
return p
9d0d10e54abd232c806dcabccaf03e52858634a1
Template:Sup
10
47
85
2020-09-23T06:24:01Z
en>RMCD bot
0
Removing notice of move discussion
wikitext
text/x-wiki
<includeonly><sup>{{{1}}}</sup></includeonly><noinclude>
{{documentation}}
<!-- Add cats and interwikis to the /doc subpage, not here! -->
</noinclude>
d7d0f30bf52c68f2f488db57534de2552c40c938
Module:Effective protection level
828
66
123
2020-09-29T03:38:47Z
en>Jackmcbarn
0
bring in changes from sandbox
Scribunto
text/plain
local p = {}
-- Returns the permission required to perform a given action on a given title.
-- If no title is specified, the title of the page being displayed is used.
function p._main(action, pagename)
local title
if type(pagename) == 'table' and pagename.prefixedText then
title = pagename
elseif pagename then
title = mw.title.new(pagename)
else
title = mw.title.getCurrentTitle()
end
pagename = title.prefixedText
if action == 'autoreview' then
local level = mw.ext.FlaggedRevs.getStabilitySettings(title)
level = level and level.autoreview
if level == 'review' then
return 'reviewer'
elseif level ~= '' then
return level
else
return nil -- not '*'. a page not being PC-protected is distinct from it being PC-protected with anyone able to review. also not '', as that would mean PC-protected but nobody can review
end
elseif action ~= 'edit' and action ~= 'move' and action ~= 'create' and action ~= 'upload' and action ~= 'undelete' then
error( 'First parameter must be one of edit, move, create, upload, undelete, autoreview', 2 )
end
if title.namespace == 8 then -- MediaWiki namespace
if title.text:sub(-3) == '.js' or title.text:sub(-4) == '.css' or title.contentModel == 'javascript' or title.contentModel == 'css' then -- site JS or CSS page
return 'interfaceadmin'
else -- any non-JS/CSS MediaWiki page
return 'sysop'
end
elseif title.namespace == 2 and title.isSubpage then
if title.contentModel == 'javascript' or title.contentModel == 'css' then -- user JS or CSS page
return 'interfaceadmin'
elseif title.contentModel == 'json' then -- user JSON page
return 'sysop'
end
end
if action == 'undelete' then
return 'sysop'
end
local level = title.protectionLevels[action] and title.protectionLevels[action][1]
if level == 'sysop' or level == 'editprotected' then
return 'sysop'
elseif title.cascadingProtection.restrictions[action] and title.cascadingProtection.restrictions[action][1] then -- used by a cascading-protected page
return 'sysop'
elseif level == 'templateeditor' then
return 'templateeditor'
elseif action == 'move' then
local blacklistentry = mw.ext.TitleBlacklist.test('edit', pagename) -- Testing action edit is correct, since this is for the source page. The target page name gets tested with action move.
if blacklistentry and not blacklistentry.params.autoconfirmed then
return 'templateeditor'
elseif title.namespace == 6 then
return 'filemover'
elseif level == 'extendedconfirmed' then
return 'extendedconfirmed'
else
return 'autoconfirmed'
end
end
local blacklistentry = mw.ext.TitleBlacklist.test(action, pagename)
if blacklistentry then
if not blacklistentry.params.autoconfirmed then
return 'templateeditor'
elseif level == 'extendedconfirmed' then
return 'extendedconfirmed'
else
return 'autoconfirmed'
end
elseif level == 'editsemiprotected' then -- create-semiprotected pages return this for some reason
return 'autoconfirmed'
elseif level then
return level
elseif action == 'upload' then
return 'autoconfirmed'
elseif action == 'create' and title.namespace % 2 == 0 and title.namespace ~= 118 then -- You need to be registered, but not autoconfirmed, to create non-talk pages other than drafts
return 'user'
else
return '*'
end
end
setmetatable(p, { __index = function(t, k)
return function(frame)
return t._main(k, frame.args[1])
end
end })
return p
70256a489edf6be9808031b14a7e3ef3e025da97
Main Page
0
1
1
2020-10-20T03:23:34Z
MediaWiki default
2
wikitext
text/x-wiki
<strong>MediaWiki has been installed.</strong>
Consult the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents User's Guide] for information on using the wiki software.
== Getting started ==
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]
5702e4d5fd9173246331a889294caf01a3ad3706
Seaboot
0
2
2
2020-10-26T22:17:35Z
Wikiricky
1
test page
wikitext
text/x-wiki
This page is purely for testing
72cb5a9e8963bcf288206f2aab88bb3b256c20d2
MediaWiki:Sidebar
8
3
3
2020-10-28T04:03:02Z
Wikiricky
1
added create a page link
wikitext
text/x-wiki
* navigation
** Create a Page|Special:CreatePage
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* SEARCH
* TOOLBOX
* LANGUAGES
3bb454a4cdbc8e5fdd8fdd03705f875741342ba9
4
3
2020-10-28T04:03:40Z
Wikiricky
1
wikitext
text/x-wiki
* navigation
** Special:CreatePage|Create a Page
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* SEARCH
* TOOLBOX
* LANGUAGES
cd70d4b7436c1b48c672e55f1c3a73fb53d43fcc
MediaWiki:Spam-blacklist
8
4
5
2020-10-30T21:52:29Z
Wikiricky
1
my first spammer
wikitext
text/x-wiki
#<!-- leave this line exactly as it is --> <pre>
# External URLs matching this list will be blocked when added to a page.
# This list affects only this wiki; refer also to the global blacklist.
# For documentation see https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:SpamBlacklist
#
# Syntax is as follows:
# * Everything from a "#" character to the end of the line is a comment
# * Every non-blank line is a regex fragment which will only match hosts inside URLs
#</pre> <!-- leave this line exactly as it is -->
\bPakarqq365\.net\b
543fc46e8c7934f061593bf4fbac5f9d98ccb327
6
5
2020-10-30T22:23:56Z
Wikiricky
1
second spammer
wikitext
text/x-wiki
#<!-- leave this line exactly as it is --> <pre>
# External URLs matching this list will be blocked when added to a page.
# This list affects only this wiki; refer also to the global blacklist.
# For documentation see https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:SpamBlacklist
#
# Syntax is as follows:
# * Everything from a "#" character to the end of the line is a comment
# * Every non-blank line is a regex fragment which will only match hosts inside URLs
#</pre> <!-- leave this line exactly as it is -->
\bPakarqq365\.net\b
\bbeatsoup\.net\b
14a24914063a18e78aba894aee7c77b36a69d7d2
Template:FlowMention
10
5
7
2020-10-31T00:08:24Z
Flow talk page manager
28
/* Automatically created by Flow */
wikitext
text/x-wiki
@[[User:{{{1|Example}}}|{{{2|{{{1|Example}}}}}}]]
98786e33cb63444ac23e3cf2bdbcab2d9501a6e7
Template:LQT Moved thread stub converted to Flow
10
6
8
2020-10-31T00:08:24Z
Flow talk page manager
28
/* Automatically created by Flow */
wikitext
text/x-wiki
This post by {{{author}}} was moved on {{{date}}}. You can find it at [[{{{title}}}]].
792a92295d0603dc3cb5c46e15d4e42af9659414
Template:LQT page converted to Flow
10
7
9
2020-10-31T00:08:24Z
Flow talk page manager
28
/* Automatically created by Flow */
wikitext
text/x-wiki
Previous page history was archived for backup purposes at <span class='flow-link-to-archive'>[[{{{archive}}}]]</span> on {{#time: Y-m-d|{{{date}}}}}.
c988d60d1df8c49bcce1f4f94a9c2a5318faf0d3
Template:Archive for converted LQT page
10
8
10
2020-10-31T00:08:24Z
Flow talk page manager
28
/* Automatically created by Flow */
wikitext
text/x-wiki
This page is an archived LiquidThreads page. <strong>Do not edit the contents of this page</strong>. Please direct any additional comments to the [[{{{from}}}|current talk page]].
6f2232948be664f5eec18e4b7a6219814d38a478
Template:LQT post imported with suppressed user
10
9
11
2020-10-31T00:08:24Z
Flow talk page manager
28
/* Automatically created by Flow */
wikitext
text/x-wiki
This revision was imported from LiquidThreads with a suppressed user. It has been reassigned to the current user.
0eb25fe53f4e146ddc0b16b14bd40d6069e56c06
Template:LQT post imported with different signature user
10
10
12
2020-10-31T00:08:24Z
Flow talk page manager
28
/* Automatically created by Flow */
wikitext
text/x-wiki
<em>This post was posted by [[User:{{{authorUser}}}|{{{authorUser}}}]], but signed as [[User:{{{signatureUser}}}|{{{signatureUser}}}]].</em>
047294b02240e1b8526ad076eb47a07e98747bac
Template:Wikitext talk page converted to Flow
10
11
13
2020-10-31T00:08:24Z
Flow talk page manager
28
/* Automatically created by Flow */
wikitext
text/x-wiki
Previous discussion was archived at <span class='flow-link-to-archive'>[[{{{archive}}}]]</span> on {{#time: Y-m-d|{{{date}}}}}.
69c9712008fdef423f0f0332a7d4ffcfe65e6e76
Template:Archive for converted wikitext talk page
10
12
14
2020-10-31T00:08:24Z
Flow talk page manager
28
/* Automatically created by Flow */
wikitext
text/x-wiki
This page is an archive. <strong>Do not edit the contents of this page</strong>. Please direct any additional comments to the [[{{{from|{{TALKSPACE}}:{{BASEPAGENAME}}}}}|current talk page]].
de059e2d945be0557b47d689299d8bd96e9699ed
Module:Documentation/styles.css
828
64
119
2020-11-19T20:21:58Z
en>Izno
0
Changed protection level for "[[Module:Documentation/styles.css]]": actually match module ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))
sanitized-css
text/css
/* {{pp|small=yes}} */
.documentation,
.documentation-metadata {
border: 1px solid #a2a9b1;
background-color: #ecfcf4;
clear: both;
}
.documentation {
margin: 1em 0 0 0;
padding: 1em;
}
.documentation-metadata {
margin: 0.2em 0; /* same margin left-right as .documentation */
font-style: italic;
padding: 0.4em 1em; /* same padding left-right as .documentation */
}
.documentation-startbox {
padding-bottom: 3px;
border-bottom: 1px solid #aaa;
margin-bottom: 1ex;
}
.documentation-heading {
font-weight: bold;
font-size: 125%;
}
.documentation-clear { /* Don't want things to stick out where they shouldn't. */
clear: both;
}
.documentation-toolbar {
font-style: normal;
font-size: 85%;
}
ce0e629c92e3d825ab9fd927fe6cc37d9117b6cb
Template:Tlx
10
55
101
2020-11-20T18:53:35Z
en>Primefac
0
Primefac moved page [[Template:Tlx]] to [[Template:Template link expanded]] over redirect: expand name, make it more obvious
wikitext
text/x-wiki
#REDIRECT [[Template:Template link expanded]]
{{Redirect category shell|
{{R from move}}
}}
1fec988ceb46cb324af228aac45d7cd25fcc9008
Template:Template link expanded
10
51
93
2020-11-21T12:04:41Z
en>Primefac
0
update
wikitext
text/x-wiki
{{#Invoke:Template link general|main|code=on}}<noinclude>
{{Documentation|1=Template:Tlg/doc
|content = {{tlg/doc|tlx}}
}}
<!-- Add categories to the /doc subpage, not here! -->
</noinclude>
6c99696fee02f1da368ed20d2504e19bc15b1c13
List of killings and shootings by law enforcement officers in Grenada
0
13
15
2020-12-02T23:46:59Z
Ricky Thomas
29
page created
wikitext
text/x-wiki
This is a list of people killed or shot by law enforcement officers in Grenada. The listing documents the occurrence of a death or shooting, asserting no implication or justification on the part of the person killed or the officer involved.
{| class="wikitable sortable"
|+
!Date
!Victim
!Location
!Description
!Result
|-
|2016-10-30
|Jerry Paul
|[[Mt.Parnassus]]
|shot while brandishing a cutlass
|5 member coroner's inquest jury verdict - death by misadventure
|-
|
|
|
|
|
|-
|
|
|
|
|
|}
63fb8d213b5eb9188d199750db132bf7f0b66a13
16
15
2020-12-02T23:53:35Z
Ricky Thomas
29
added citation
wikitext
text/x-wiki
This is a list of people killed or shot by law enforcement officers in Grenada. The listing documents the occurrence of a death or shooting, asserting no implication or justification on the part of the person killed or the officer involved.
{| class="wikitable sortable"
|+
!Date
!Victim
!Location
!Description
!Result
|-
|2016-10-30
|Jerry Paul
|[[Mt.Parnassus]]
|shot while brandishing a cutlass
|5 member coroner's inquest jury verdict - death by misadventure<ref>https://www.nowgrenada.com/2018/05/jury-returns-verdict-of-no-criminal-responsibility-in-police-shooting/</ref>
|-
|
|
|
|
|
|-
|
|
|
|
|
|}
43c092a9498ae4b77fc0d37d444dafeb70bf78ba
17
16
2020-12-03T02:36:45Z
Ricky Thomas
29
Ricky Thomas moved page [[List of killings by law enforcement officers in Grenada]] to [[List of killings and shootings by law enforcement officers in Grenada]]: left out shooting in title
wikitext
text/x-wiki
This is a list of people killed or shot by law enforcement officers in Grenada. The listing documents the occurrence of a death or shooting, asserting no implication or justification on the part of the person killed or the officer involved.
{| class="wikitable sortable"
|+
!Date
!Victim
!Location
!Description
!Result
|-
|2016-10-30
|Jerry Paul
|[[Mt.Parnassus]]
|shot while brandishing a cutlass
|5 member coroner's inquest jury verdict - death by misadventure<ref>https://www.nowgrenada.com/2018/05/jury-returns-verdict-of-no-criminal-responsibility-in-police-shooting/</ref>
|-
|
|
|
|
|
|-
|
|
|
|
|
|}
43c092a9498ae4b77fc0d37d444dafeb70bf78ba
19
17
2020-12-03T02:50:28Z
63.245.58.192
0
added oscar bartholomew case
wikitext
text/x-wiki
This is a list of people killed or shot by law enforcement officers in Grenada. The listing documents the occurrence of a death or shooting, asserting no implication or justification on the part of the person killed or the officer involved.
{| class="wikitable sortable"
|+
!Date
!Victim
!Location
!Description
!Result
|-
|2016-10-30
|Jerry Paul
|[[Mt.Parnassus]]
|shot while brandishing a cutlass
|5 member coroner's inquest jury verdict - death by misadventure<ref>https://www.nowgrenada.com/2018/05/jury-returns-verdict-of-no-criminal-responsibility-in-police-shooting/</ref>
|-
|2011-11
|Oscar Bartholomew
|St. David Police Station<ref>https://www.thegrenadainformer.com/news/item/5219-one-officer-cleared-in-the-oscar-bartholomew-civil-matter</ref>
|
|
|-
|
|
|
|
|
|}
<references />
f977188a90ed31701696159f1a3abc6cb5f4caf1
List of killings by law enforcement officers in Grenada
0
14
18
2020-12-02T23:49:59Z
Ricky Thomas
29
Ricky Thomas moved page [[List of killings by law enforcement officers in Grenada]] to [[List of killings and shootings by law enforcement officers in Grenada]]: left out shooting in title
wikitext
text/x-wiki
#REDIRECT [[List of killings and shootings by law enforcement officers in Grenada]]
38d807a7a2d339419382bc24a4c495967ba315f6
Template:Div col/styles.css
10
25
41
2021-01-05T04:54:19Z
en>Izno
0
remove the note as not generally necessary
sanitized-css
text/css
/* {{pp|small=yes}} */
.div-col {
margin-top: 0.3em;
column-width: 30em;
}
.div-col-small {
font-size: 90%;
}
.div-col-rules {
column-rule: 1px solid #aaa;
}
/* Reset top margin for lists in div col */
.div-col dl,
.div-col ol,
.div-col ul {
margin-top: 0;
}
/* Avoid elements breaking between columns
See also Template:No col break */
.div-col li,
.div-col dd {
page-break-inside: avoid; /* Removed from CSS in favor of break-inside c. 2020 */
break-inside: avoid-column;
}
c6c2dc0cb2bab7a5f7b4eb938eebc5c67df087bc
Template:Tl
10
54
99
2021-02-12T22:03:00Z
en>Anthony Appleyard
0
Anthony Appleyard moved page [[Template:Tl]] to [[Template:Template link]]: [[Special:Permalink/1006428669|Requested]] by Buidhe at [[WP:RM/TR]]: RM closed as move
wikitext
text/x-wiki
#REDIRECT [[Template:Template link]]
{{Redirect category shell|
{{R from move}}
}}
d6593bb3b4a866249f55d0f34b047a71fe1f1529
Template:Div col
10
18
27
2021-02-14T23:20:57Z
en>Matt Fitzpatrick
0
whitelist parameter class
wikitext
text/x-wiki
<includeonly><templatestyles src="Div col/styles.css"/><!--
--><div class="div-col {{#ifeq:{{{small|}}}|yes|div-col-small}} {{#ifeq:{{{rules|}}}|yes|div-col-rules}} {{{class|}}}" <!--
-->{{#if:{{{colwidth|}}}{{{gap|}}}{{{style|}}}|<!--
-->style="{{#if:{{{colwidth|}}}|column-width: {{{colwidth}}};}}{{#if:{{{gap|}}}|column-gap: {{{gap}}};}}{{#if:{{{style|}}}|{{{style}}}}}"<!--
-->}}><!--
-->{{#if:{{{content|}}}|{{{content}}}</div>}}<!-- Inventory how many pages use small=yes
-->{{#ifeq:{{{small|}}}|yes|[[Category:Pages using div col with small parameter]]}}<!--
--></includeonly>{{#invoke:Check for unknown parameters|check|unknown={{main other|[[Category:Pages using div col with unknown parameters|_VALUE_{{PAGENAME}}]]}}|preview=Page using [[Template:Div col]] with unknown parameter "_VALUE_"; use colwidth= to specify column size |ignoreblank=y | class | colwidth | content | gap | rules | small | style }}<noinclude>
{{Documentation}}
</noinclude>
6e84133dd867d6c701e7b161878cf66665bb7eb7
Template:Template link
10
50
91
2021-03-25T19:03:22Z
en>Izno
0
[[Wikipedia:Templates for discussion/Log/2021 March 18#Template:Tlu]] closed as keep ([[WP:XFDC#4.0.11|XFDcloser]])
wikitext
text/x-wiki
{{[[Template:{{{1}}}|{{{1}}}]]}}<noinclude>{{documentation}}
<!-- Categories go on the /doc subpage and interwikis go on Wikidata. -->
</noinclude>
eabbec62efe3044a98ebb3ce9e7d4d43c222351d
Template:Category link with count
10
20
31
2021-06-11T18:13:44Z
en>GKFX
0
Support wider range of (valid) input format
wikitext
text/x-wiki
[[:Category:{{#invoke:string|replace|1={{{1}}}|2=^:?[Cc]ategory:|3=|plain=false}}|<!--
-->{{#if:{{{name|}}}|{{{name}}}|Category:{{#invoke:string|replace|1={{{1}}}|2=^:?[Cc]ategory:|3=|plain=false}}}}<!--
-->]] ({{PAGESINCATEGORY:{{#invoke:string|replace|1={{{1}}}|2=^:?[Cc]ategory:|3=|plain=false}}|{{{2|all}}}}})<noinclude>
{{Documentation}}
</noinclude>
f93f1540b8c157703bd6d24ae35c35bef745981d
Module:Protection banner
828
79
149
2021-07-16T11:59:29Z
en>ProcrastinatingReader
0
add catonly param which hides both the banner and padlock if set to yes. all testcases pass. tested in sandbox.
Scribunto
text/plain
-- This module implements {{pp-meta}} and its daughter templates such as
-- {{pp-dispute}}, {{pp-vandalism}} and {{pp-sock}}.
-- Initialise necessary modules.
require('Module:No globals')
local makeFileLink = require('Module:File link')._main
local effectiveProtectionLevel = require('Module:Effective protection level')._main
local effectiveProtectionExpiry = require('Module:Effective protection expiry')._main
local yesno = require('Module:Yesno')
-- Lazily initialise modules and objects we don't always need.
local getArgs, makeMessageBox, lang
-- Set constants.
local CONFIG_MODULE = 'Module:Protection banner/config'
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function makeCategoryLink(cat, sort)
if cat then
return string.format(
'[[%s:%s|%s]]',
mw.site.namespaces[14].name,
cat,
sort
)
end
end
-- Validation function for the expiry and the protection date
local function validateDate(dateString, dateType)
if not lang then
lang = mw.language.getContentLanguage()
end
local success, result = pcall(lang.formatDate, lang, 'U', dateString)
if success then
result = tonumber(result)
if result then
return result
end
end
error(string.format(
'invalid %s: %s',
dateType,
tostring(dateString)
), 4)
end
local function makeFullUrl(page, query, display)
return string.format(
'[%s %s]',
tostring(mw.uri.fullUrl(page, query)),
display
)
end
-- Given a directed graph formatted as node -> table of direct successors,
-- get a table of all nodes reachable from a given node (though always
-- including the given node).
local function getReachableNodes(graph, start)
local toWalk, retval = {[start] = true}, {}
while true do
-- Can't use pairs() since we're adding and removing things as we're iterating
local k = next(toWalk) -- This always gets the "first" key
if k == nil then
return retval
end
toWalk[k] = nil
retval[k] = true
for _,v in ipairs(graph[k]) do
if not retval[v] then
toWalk[v] = true
end
end
end
end
--------------------------------------------------------------------------------
-- Protection class
--------------------------------------------------------------------------------
local Protection = {}
Protection.__index = Protection
Protection.supportedActions = {
edit = true,
move = true,
autoreview = true,
upload = true
}
Protection.bannerConfigFields = {
'text',
'explanation',
'tooltip',
'alt',
'link',
'image'
}
function Protection.new(args, cfg, title)
local obj = {}
obj._cfg = cfg
obj.title = title or mw.title.getCurrentTitle()
-- Set action
if not args.action then
obj.action = 'edit'
elseif Protection.supportedActions[args.action] then
obj.action = args.action
else
error(string.format(
'invalid action: %s',
tostring(args.action)
), 3)
end
-- Set level
obj.level = args.demolevel or effectiveProtectionLevel(obj.action, obj.title)
if not obj.level or (obj.action == 'move' and obj.level == 'autoconfirmed') then
-- Users need to be autoconfirmed to move pages anyway, so treat
-- semi-move-protected pages as unprotected.
obj.level = '*'
end
-- Set expiry
local effectiveExpiry = effectiveProtectionExpiry(obj.action, obj.title)
if effectiveExpiry == 'infinity' then
obj.expiry = 'indef'
elseif effectiveExpiry ~= 'unknown' then
obj.expiry = validateDate(effectiveExpiry, 'expiry date')
end
-- Set reason
if args[1] then
obj.reason = mw.ustring.lower(args[1])
if obj.reason:find('|') then
error('reasons cannot contain the pipe character ("|")', 3)
end
end
-- Set protection date
if args.date then
obj.protectionDate = validateDate(args.date, 'protection date')
end
-- Set banner config
do
obj.bannerConfig = {}
local configTables = {}
if cfg.banners[obj.action] then
configTables[#configTables + 1] = cfg.banners[obj.action][obj.reason]
end
if cfg.defaultBanners[obj.action] then
configTables[#configTables + 1] = cfg.defaultBanners[obj.action][obj.level]
configTables[#configTables + 1] = cfg.defaultBanners[obj.action].default
end
configTables[#configTables + 1] = cfg.masterBanner
for i, field in ipairs(Protection.bannerConfigFields) do
for j, t in ipairs(configTables) do
if t[field] then
obj.bannerConfig[field] = t[field]
break
end
end
end
end
return setmetatable(obj, Protection)
end
function Protection:isUserScript()
-- Whether the page is a user JavaScript or CSS page.
local title = self.title
return title.namespace == 2 and (
title.contentModel == 'javascript' or title.contentModel == 'css'
)
end
function Protection:isProtected()
return self.level ~= '*'
end
function Protection:shouldShowLock()
-- Whether we should output a banner/padlock
return self:isProtected() and not self:isUserScript()
end
-- Whether this page needs a protection category.
Protection.shouldHaveProtectionCategory = Protection.shouldShowLock
function Protection:isTemporary()
return type(self.expiry) == 'number'
end
function Protection:makeProtectionCategory()
if not self:shouldHaveProtectionCategory() then
return ''
end
local cfg = self._cfg
local title = self.title
-- Get the expiry key fragment.
local expiryFragment
if self.expiry == 'indef' then
expiryFragment = self.expiry
elseif type(self.expiry) == 'number' then
expiryFragment = 'temp'
end
-- Get the namespace key fragment.
local namespaceFragment = cfg.categoryNamespaceKeys[title.namespace]
if not namespaceFragment and title.namespace % 2 == 1 then
namespaceFragment = 'talk'
end
-- Define the order that key fragments are tested in. This is done with an
-- array of tables containing the value to be tested, along with its
-- position in the cfg.protectionCategories table.
local order = {
{val = expiryFragment, keypos = 1},
{val = namespaceFragment, keypos = 2},
{val = self.reason, keypos = 3},
{val = self.level, keypos = 4},
{val = self.action, keypos = 5}
}
--[[
-- The old protection templates used an ad-hoc protection category system,
-- with some templates prioritising namespaces in their categories, and
-- others prioritising the protection reason. To emulate this in this module
-- we use the config table cfg.reasonsWithNamespacePriority to set the
-- reasons for which namespaces have priority over protection reason.
-- If we are dealing with one of those reasons, move the namespace table to
-- the end of the order table, i.e. give it highest priority. If not, the
-- reason should have highest priority, so move that to the end of the table
-- instead.
--]]
table.insert(order, table.remove(order, self.reason and cfg.reasonsWithNamespacePriority[self.reason] and 2 or 3))
--[[
-- Define the attempt order. Inactive subtables (subtables with nil "value"
-- fields) are moved to the end, where they will later be given the key
-- "all". This is to cut down on the number of table lookups in
-- cfg.protectionCategories, which grows exponentially with the number of
-- non-nil keys. We keep track of the number of active subtables with the
-- noActive parameter.
--]]
local noActive, attemptOrder
do
local active, inactive = {}, {}
for i, t in ipairs(order) do
if t.val then
active[#active + 1] = t
else
inactive[#inactive + 1] = t
end
end
noActive = #active
attemptOrder = active
for i, t in ipairs(inactive) do
attemptOrder[#attemptOrder + 1] = t
end
end
--[[
-- Check increasingly generic key combinations until we find a match. If a
-- specific category exists for the combination of key fragments we are
-- given, that match will be found first. If not, we keep trying different
-- key fragment combinations until we match using the key
-- "all-all-all-all-all".
--
-- To generate the keys, we index the key subtables using a binary matrix
-- with indexes i and j. j is only calculated up to the number of active
-- subtables. For example, if there were three active subtables, the matrix
-- would look like this, with 0 corresponding to the key fragment "all", and
-- 1 corresponding to other key fragments.
--
-- j 1 2 3
-- i
-- 1 1 1 1
-- 2 0 1 1
-- 3 1 0 1
-- 4 0 0 1
-- 5 1 1 0
-- 6 0 1 0
-- 7 1 0 0
-- 8 0 0 0
--
-- Values of j higher than the number of active subtables are set
-- to the string "all".
--
-- A key for cfg.protectionCategories is constructed for each value of i.
-- The position of the value in the key is determined by the keypos field in
-- each subtable.
--]]
local cats = cfg.protectionCategories
for i = 1, 2^noActive do
local key = {}
for j, t in ipairs(attemptOrder) do
if j > noActive then
key[t.keypos] = 'all'
else
local quotient = i / 2 ^ (j - 1)
quotient = math.ceil(quotient)
if quotient % 2 == 1 then
key[t.keypos] = t.val
else
key[t.keypos] = 'all'
end
end
end
key = table.concat(key, '|')
local attempt = cats[key]
if attempt then
return makeCategoryLink(attempt, title.text)
end
end
return ''
end
function Protection:isIncorrect()
local expiry = self.expiry
return not self:shouldHaveProtectionCategory()
or type(expiry) == 'number' and expiry < os.time()
end
function Protection:isTemplateProtectedNonTemplate()
local action, namespace = self.action, self.title.namespace
return self.level == 'templateeditor'
and (
(action ~= 'edit' and action ~= 'move')
or (namespace ~= 10 and namespace ~= 828)
)
end
function Protection:makeCategoryLinks()
local msg = self._cfg.msg
local ret = {self:makeProtectionCategory()}
if self:isIncorrect() then
ret[#ret + 1] = makeCategoryLink(
msg['tracking-category-incorrect'],
self.title.text
)
end
if self:isTemplateProtectedNonTemplate() then
ret[#ret + 1] = makeCategoryLink(
msg['tracking-category-template'],
self.title.text
)
end
return table.concat(ret)
end
--------------------------------------------------------------------------------
-- Blurb class
--------------------------------------------------------------------------------
local Blurb = {}
Blurb.__index = Blurb
Blurb.bannerTextFields = {
text = true,
explanation = true,
tooltip = true,
alt = true,
link = true
}
function Blurb.new(protectionObj, args, cfg)
return setmetatable({
_cfg = cfg,
_protectionObj = protectionObj,
_args = args
}, Blurb)
end
-- Private methods --
function Blurb:_formatDate(num)
-- Formats a Unix timestamp into dd Month, YYYY format.
lang = lang or mw.language.getContentLanguage()
local success, date = pcall(
lang.formatDate,
lang,
self._cfg.msg['expiry-date-format'] or 'j F Y',
'@' .. tostring(num)
)
if success then
return date
end
end
function Blurb:_getExpandedMessage(msgKey)
return self:_substituteParameters(self._cfg.msg[msgKey])
end
function Blurb:_substituteParameters(msg)
if not self._params then
local parameterFuncs = {}
parameterFuncs.CURRENTVERSION = self._makeCurrentVersionParameter
parameterFuncs.EDITREQUEST = self._makeEditRequestParameter
parameterFuncs.EXPIRY = self._makeExpiryParameter
parameterFuncs.EXPLANATIONBLURB = self._makeExplanationBlurbParameter
parameterFuncs.IMAGELINK = self._makeImageLinkParameter
parameterFuncs.INTROBLURB = self._makeIntroBlurbParameter
parameterFuncs.INTROFRAGMENT = self._makeIntroFragmentParameter
parameterFuncs.PAGETYPE = self._makePagetypeParameter
parameterFuncs.PROTECTIONBLURB = self._makeProtectionBlurbParameter
parameterFuncs.PROTECTIONDATE = self._makeProtectionDateParameter
parameterFuncs.PROTECTIONLEVEL = self._makeProtectionLevelParameter
parameterFuncs.PROTECTIONLOG = self._makeProtectionLogParameter
parameterFuncs.TALKPAGE = self._makeTalkPageParameter
parameterFuncs.TOOLTIPBLURB = self._makeTooltipBlurbParameter
parameterFuncs.TOOLTIPFRAGMENT = self._makeTooltipFragmentParameter
parameterFuncs.VANDAL = self._makeVandalTemplateParameter
self._params = setmetatable({}, {
__index = function (t, k)
local param
if parameterFuncs[k] then
param = parameterFuncs[k](self)
end
param = param or ''
t[k] = param
return param
end
})
end
msg = msg:gsub('${(%u+)}', self._params)
return msg
end
function Blurb:_makeCurrentVersionParameter()
-- A link to the page history or the move log, depending on the kind of
-- protection.
local pagename = self._protectionObj.title.prefixedText
if self._protectionObj.action == 'move' then
-- We need the move log link.
return makeFullUrl(
'Special:Log',
{type = 'move', page = pagename},
self:_getExpandedMessage('current-version-move-display')
)
else
-- We need the history link.
return makeFullUrl(
pagename,
{action = 'history'},
self:_getExpandedMessage('current-version-edit-display')
)
end
end
function Blurb:_makeEditRequestParameter()
local mEditRequest = require('Module:Submit an edit request')
local action = self._protectionObj.action
local level = self._protectionObj.level
-- Get the edit request type.
local requestType
if action == 'edit' then
if level == 'autoconfirmed' then
requestType = 'semi'
elseif level == 'extendedconfirmed' then
requestType = 'extended'
elseif level == 'templateeditor' then
requestType = 'template'
end
end
requestType = requestType or 'full'
-- Get the display value.
local display = self:_getExpandedMessage('edit-request-display')
return mEditRequest._link{type = requestType, display = display}
end
function Blurb:_makeExpiryParameter()
local expiry = self._protectionObj.expiry
if type(expiry) == 'number' then
return self:_formatDate(expiry)
else
return expiry
end
end
function Blurb:_makeExplanationBlurbParameter()
-- Cover special cases first.
if self._protectionObj.title.namespace == 8 then
-- MediaWiki namespace
return self:_getExpandedMessage('explanation-blurb-nounprotect')
end
-- Get explanation blurb table keys
local action = self._protectionObj.action
local level = self._protectionObj.level
local talkKey = self._protectionObj.title.isTalkPage and 'talk' or 'subject'
-- Find the message in the explanation blurb table and substitute any
-- parameters.
local explanations = self._cfg.explanationBlurbs
local msg
if explanations[action][level] and explanations[action][level][talkKey] then
msg = explanations[action][level][talkKey]
elseif explanations[action][level] and explanations[action][level].default then
msg = explanations[action][level].default
elseif explanations[action].default and explanations[action].default[talkKey] then
msg = explanations[action].default[talkKey]
elseif explanations[action].default and explanations[action].default.default then
msg = explanations[action].default.default
else
error(string.format(
'could not find explanation blurb for action "%s", level "%s" and talk key "%s"',
action,
level,
talkKey
), 8)
end
return self:_substituteParameters(msg)
end
function Blurb:_makeImageLinkParameter()
local imageLinks = self._cfg.imageLinks
local action = self._protectionObj.action
local level = self._protectionObj.level
local msg
if imageLinks[action][level] then
msg = imageLinks[action][level]
elseif imageLinks[action].default then
msg = imageLinks[action].default
else
msg = imageLinks.edit.default
end
return self:_substituteParameters(msg)
end
function Blurb:_makeIntroBlurbParameter()
if self._protectionObj:isTemporary() then
return self:_getExpandedMessage('intro-blurb-expiry')
else
return self:_getExpandedMessage('intro-blurb-noexpiry')
end
end
function Blurb:_makeIntroFragmentParameter()
if self._protectionObj:isTemporary() then
return self:_getExpandedMessage('intro-fragment-expiry')
else
return self:_getExpandedMessage('intro-fragment-noexpiry')
end
end
function Blurb:_makePagetypeParameter()
local pagetypes = self._cfg.pagetypes
return pagetypes[self._protectionObj.title.namespace]
or pagetypes.default
or error('no default pagetype defined', 8)
end
function Blurb:_makeProtectionBlurbParameter()
local protectionBlurbs = self._cfg.protectionBlurbs
local action = self._protectionObj.action
local level = self._protectionObj.level
local msg
if protectionBlurbs[action][level] then
msg = protectionBlurbs[action][level]
elseif protectionBlurbs[action].default then
msg = protectionBlurbs[action].default
elseif protectionBlurbs.edit.default then
msg = protectionBlurbs.edit.default
else
error('no protection blurb defined for protectionBlurbs.edit.default', 8)
end
return self:_substituteParameters(msg)
end
function Blurb:_makeProtectionDateParameter()
local protectionDate = self._protectionObj.protectionDate
if type(protectionDate) == 'number' then
return self:_formatDate(protectionDate)
else
return protectionDate
end
end
function Blurb:_makeProtectionLevelParameter()
local protectionLevels = self._cfg.protectionLevels
local action = self._protectionObj.action
local level = self._protectionObj.level
local msg
if protectionLevels[action][level] then
msg = protectionLevels[action][level]
elseif protectionLevels[action].default then
msg = protectionLevels[action].default
elseif protectionLevels.edit.default then
msg = protectionLevels.edit.default
else
error('no protection level defined for protectionLevels.edit.default', 8)
end
return self:_substituteParameters(msg)
end
function Blurb:_makeProtectionLogParameter()
local pagename = self._protectionObj.title.prefixedText
if self._protectionObj.action == 'autoreview' then
-- We need the pending changes log.
return makeFullUrl(
'Special:Log',
{type = 'stable', page = pagename},
self:_getExpandedMessage('pc-log-display')
)
else
-- We need the protection log.
return makeFullUrl(
'Special:Log',
{type = 'protect', page = pagename},
self:_getExpandedMessage('protection-log-display')
)
end
end
function Blurb:_makeTalkPageParameter()
return string.format(
'[[%s:%s#%s|%s]]',
mw.site.namespaces[self._protectionObj.title.namespace].talk.name,
self._protectionObj.title.text,
self._args.section or 'top',
self:_getExpandedMessage('talk-page-link-display')
)
end
function Blurb:_makeTooltipBlurbParameter()
if self._protectionObj:isTemporary() then
return self:_getExpandedMessage('tooltip-blurb-expiry')
else
return self:_getExpandedMessage('tooltip-blurb-noexpiry')
end
end
function Blurb:_makeTooltipFragmentParameter()
if self._protectionObj:isTemporary() then
return self:_getExpandedMessage('tooltip-fragment-expiry')
else
return self:_getExpandedMessage('tooltip-fragment-noexpiry')
end
end
function Blurb:_makeVandalTemplateParameter()
return mw.getCurrentFrame():expandTemplate{
title="vandal-m",
args={self._args.user or self._protectionObj.title.baseText}
}
end
-- Public methods --
function Blurb:makeBannerText(key)
-- Validate input.
if not key or not Blurb.bannerTextFields[key] then
error(string.format(
'"%s" is not a valid banner config field',
tostring(key)
), 2)
end
-- Generate the text.
local msg = self._protectionObj.bannerConfig[key]
if type(msg) == 'string' then
return self:_substituteParameters(msg)
elseif type(msg) == 'function' then
msg = msg(self._protectionObj, self._args)
if type(msg) ~= 'string' then
error(string.format(
'bad output from banner config function with key "%s"'
.. ' (expected string, got %s)',
tostring(key),
type(msg)
), 4)
end
return self:_substituteParameters(msg)
end
end
--------------------------------------------------------------------------------
-- BannerTemplate class
--------------------------------------------------------------------------------
local BannerTemplate = {}
BannerTemplate.__index = BannerTemplate
function BannerTemplate.new(protectionObj, cfg)
local obj = {}
obj._cfg = cfg
-- Set the image filename.
local imageFilename = protectionObj.bannerConfig.image
if imageFilename then
obj._imageFilename = imageFilename
else
-- If an image filename isn't specified explicitly in the banner config,
-- generate it from the protection status and the namespace.
local action = protectionObj.action
local level = protectionObj.level
local namespace = protectionObj.title.namespace
local reason = protectionObj.reason
-- Deal with special cases first.
if (
namespace == 10
or namespace == 828
or reason and obj._cfg.indefImageReasons[reason]
)
and action == 'edit'
and level == 'sysop'
and not protectionObj:isTemporary()
then
-- Fully protected modules and templates get the special red "indef"
-- padlock.
obj._imageFilename = obj._cfg.msg['image-filename-indef']
else
-- Deal with regular protection types.
local images = obj._cfg.images
if images[action] then
if images[action][level] then
obj._imageFilename = images[action][level]
elseif images[action].default then
obj._imageFilename = images[action].default
end
end
end
end
return setmetatable(obj, BannerTemplate)
end
function BannerTemplate:renderImage()
local filename = self._imageFilename
or self._cfg.msg['image-filename-default']
or 'Transparent.gif'
return makeFileLink{
file = filename,
size = (self.imageWidth or 20) .. 'px',
alt = self._imageAlt,
link = self._imageLink,
caption = self.imageCaption
}
end
--------------------------------------------------------------------------------
-- Banner class
--------------------------------------------------------------------------------
local Banner = setmetatable({}, BannerTemplate)
Banner.__index = Banner
function Banner.new(protectionObj, blurbObj, cfg)
local obj = BannerTemplate.new(protectionObj, cfg) -- This doesn't need the blurb.
obj.imageWidth = 40
obj.imageCaption = blurbObj:makeBannerText('alt') -- Large banners use the alt text for the tooltip.
obj._reasonText = blurbObj:makeBannerText('text')
obj._explanationText = blurbObj:makeBannerText('explanation')
obj._page = protectionObj.title.prefixedText -- Only makes a difference in testing.
return setmetatable(obj, Banner)
end
function Banner:__tostring()
-- Renders the banner.
makeMessageBox = makeMessageBox or require('Module:Message box').main
local reasonText = self._reasonText or error('no reason text set', 2)
local explanationText = self._explanationText
local mbargs = {
page = self._page,
type = 'protection',
image = self:renderImage(),
text = string.format(
"'''%s'''%s",
reasonText,
explanationText and '<br />' .. explanationText or ''
)
}
return makeMessageBox('mbox', mbargs)
end
--------------------------------------------------------------------------------
-- Padlock class
--------------------------------------------------------------------------------
local Padlock = setmetatable({}, BannerTemplate)
Padlock.__index = Padlock
function Padlock.new(protectionObj, blurbObj, cfg)
local obj = BannerTemplate.new(protectionObj, cfg) -- This doesn't need the blurb.
obj.imageWidth = 20
obj.imageCaption = blurbObj:makeBannerText('tooltip')
obj._imageAlt = blurbObj:makeBannerText('alt')
obj._imageLink = blurbObj:makeBannerText('link')
obj._indicatorName = cfg.padlockIndicatorNames[protectionObj.action]
or cfg.padlockIndicatorNames.default
or 'pp-default'
return setmetatable(obj, Padlock)
end
function Padlock:__tostring()
local frame = mw.getCurrentFrame()
-- The nowiki tag helps prevent whitespace at the top of articles.
return frame:extensionTag{name = 'nowiki'} .. frame:extensionTag{
name = 'indicator',
args = {name = self._indicatorName},
content = self:renderImage()
}
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p = {}
function p._exportClasses()
-- This is used for testing purposes.
return {
Protection = Protection,
Blurb = Blurb,
BannerTemplate = BannerTemplate,
Banner = Banner,
Padlock = Padlock,
}
end
function p._main(args, cfg, title)
args = args or {}
cfg = cfg or require(CONFIG_MODULE)
local protectionObj = Protection.new(args, cfg, title)
local ret = {}
-- If a page's edit protection is equally or more restrictive than its
-- protection from some other action, then don't bother displaying anything
-- for the other action (except categories).
if not yesno(args.catonly) and (protectionObj.action == 'edit' or
args.demolevel or
not getReachableNodes(
cfg.hierarchy,
protectionObj.level
)[effectiveProtectionLevel('edit', protectionObj.title)])
then
-- Initialise the blurb object
local blurbObj = Blurb.new(protectionObj, args, cfg)
-- Render the banner
if protectionObj:shouldShowLock() then
ret[#ret + 1] = tostring(
(yesno(args.small) and Padlock or Banner)
.new(protectionObj, blurbObj, cfg)
)
end
end
-- Render the categories
if yesno(args.category) ~= false then
ret[#ret + 1] = protectionObj:makeCategoryLinks()
end
return table.concat(ret)
end
function p.main(frame, cfg)
cfg = cfg or require(CONFIG_MODULE)
-- Find default args, if any.
local parent = frame.getParent and frame:getParent()
local defaultArgs = parent and cfg.wrappers[parent:getTitle():gsub('/sandbox$', '')]
-- Find user args, and use the parent frame if we are being called from a
-- wrapper template.
getArgs = getArgs or require('Module:Arguments').getArgs
local userArgs = getArgs(frame, {
parentOnly = defaultArgs,
frameOnly = not defaultArgs
})
-- Build the args table. User-specified args overwrite default args.
local args = {}
for k, v in pairs(defaultArgs or {}) do
args[k] = v
end
for k, v in pairs(userArgs) do
args[k] = v
end
return p._main(args, cfg)
end
return p
b24b049f70572e29b1a408a5a11045d65118e43c
Template:Lorem ipsum/P1
10
33
57
2021-08-05T20:35:14Z
en>Tbhotch
0
pp
wikitext
text/x-wiki
{{#ifeq:{{{link|no}}}|yes|[[Lorem ipsum]]|Lorem ipsum}} dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.<noinclude>{{pp-template}}</noinclude>
df39f3c9a1e5a7c04c8844ba5871733dcf423d99
Template:Template parameter usage
10
53
97
2021-08-21T18:02:56Z
en>SUM1
0
Added missing "lc" parameters; added optional "based" parameter to add text "based on this[/its] TemplateData" at end of template
wikitext
text/x-wiki
{{#switch:{{{label|}}}
|=[https://bambots.brucemyers.com/TemplateParam.php?wiki=enwiki&template={{Urlencode:{{#if:{{{1|}}}|{{ROOTPAGENAME:{{{1|}}}}}|{{ROOTPAGENAME}}}}}} {{#ifeq:{{yesno-no|{{{lc}}}}}|no|C|c}}lick here] to see a monthly parameter usage report for {{#if:{{{1|}}}|[[Template:{{ROOTPAGENAME:{{{1|}}}}}]]|this template}}{{#ifeq:{{yesno-no|{{{based}}}}}|yes| based on {{#if:{{{1|}}}|its|this}} TemplateData}}.
|None|none=[https://bambots.brucemyers.com/TemplateParam.php?wiki=enwiki&template={{Urlencode:{{#if:{{{1|}}}|{{ROOTPAGENAME:{{{1|}}}}}|{{ROOTPAGENAME}}}}}} {{#ifeq:{{yesno-no|{{{lc}}}}}|no|P|p}}arameter usage report]{{#ifeq:{{yesno-no|{{{based}}}}}|yes| based on {{#if:{{{1|}}}|its|this}} TemplateData}}
|for|For=[https://bambots.brucemyers.com/TemplateParam.php?wiki=enwiki&template={{Urlencode:{{#if:{{{1|}}}|{{ROOTPAGENAME:{{{1|}}}}}|{{ROOTPAGENAME}}}}}} {{#ifeq:{{yesno-no|{{{lc}}}}}|no|P|p}}arameter usage report] for {{#if:{{{1|}}}|[[Template:{{ROOTPAGENAME:{{{1|}}}}}]]|[[Template:{{ROOTPAGENAME}}]]}}{{#ifeq:{{yesno-no|{{{based}}}}}|yes| based on {{#if:{{{1|}}}|its|this}} TemplateData}}.
|#default=[https://bambots.brucemyers.com/TemplateParam.php?wiki=enwiki&template={{Urlencode:{{#if:{{{1|}}}|{{ROOTPAGENAME:{{{1|}}}}}|{{ROOTPAGENAME}}}}}} {{{label|}}}]{{#ifeq:{{yesno-no|{{{based}}}}}|yes| based on {{#if:{{{1|}}}|its|this}} TemplateData}}
}}<noinclude>
{{documentation}}
</noinclude>
b9cdd1b2e409313904f041c38562a3d6221cc017
Template:Div col/doc
10
24
39
2021-08-25T19:59:51Z
en>Elvorix
0
Undid edits by [[Special:Contributions/179.6.194.255|179.6.194.255]] ([[User talk:179.6.194.255|talk]]) to last revision by Artoria2e5: nonconstructive edits
wikitext
text/x-wiki
{{Documentation subpage}}
<!-----------------------------------------------------------------------------
PLEASE ADD CATEGORIES WHERE INDICATED AT THE BOTTOM OF THIS PAGE
------------------------------------------------------------------------------>
{{#ifeq:{{FULLPAGENAME}}|Template:Div col|{{High-use| 269676 }}|{{#ifeq:{{FULLPAGENAME}}|Template:Div col end|{{High-use| 209292 }}}}}}
{{Ombox |type=notice |text=Columns are not supported by some older browsers, most notably Internet Explorer 9 and earlier and Opera 11.0 and earlier. See {{section link|Template:Reflist#Browser support for columns}} for more information.}}
{{CSS3 multiple column layout}}
{{Lua|Module:Check for unknown parameters}}
{{Uses TemplateStyles|Template:Div col/styles.css}}
The '''div col''' (short for division columns) formats a list into columns that wrap at multiple screen resolutions responsively. It automatically breaks the available screen space into equal parts, meaning, for instance, that it is not necessary to guess how many columns to use and then figure out the dividing point(s), e.g., the halfway point to divide the list into two columns, or the one-third and two-thirds points to divide the list into three columns.
==Usage==
=== Basic usage ===
<pre>
{{div col}} <!-- default width is 30em -->
* a
* b
* c
* d
* e
* f
* g
* h
{{div col end}}
</pre>
Produces:
{{Div col}}
* a
* b
* c
* d
* e
* f
* g
* h
{{Div col end}}
===Parameters===
There are six parameters for this template:
; {{para|colwidth}}
: Specifies the minimum width of the columns so that the number of columns is automatically based on screen width (that is, more columns will be shown on wider displays). If no value is supplied, the template uses a default of 30em. The width can be specified in any [[CSS#Length units|CSS unit of measure]], for instance, the [[Em (typography)|em]] (about the width of the capital "M" of the displayed typeface), e.g., <code>colwidth=20em</code>.
; {{para|rules|yes}}
: Adds vertical lines ("rules") between the columns if set to <code>yes</code>.
; {{para|gap}}
: Specifies the space between the content of adjacent columns, in any valid CSS width unit, e.g., <code>gap=2em</code>. The default spacing (set by browser) is 1em.
; {{para|class}}
: An HTML class, or multiple space-delimited classes, to apply to the columns. For example, <code>class=plainlist nowrap</code>.
; {{para|style}}
: [[Cascading Style Sheets|CSS styling]] to apply to the columns.
; {{para|small|yes}}
: Sets font size to 90%.
; {{para|content}}
: Content to apply to the columns. This parameter is effectively equivalent to {{tl|columns-list}}, which is a pass-through for this template.
=== Examples ===
====Colwidth====
<pre>
{{div col|colwidth=10em}} <!-- column width of 10em -->
* a
* b
* c
* d
* e
* f
* g
* h
{{div col end}}
</pre>
Produces:
{{Div col|colwidth=10em}}
* a
* b
* c
* d
* e
* f
* g
* h
{{Div col end}}
====Rules====
<pre>
{{Div col|colwidth=10em|rules=yes}} <!-- column width of 10em with rules -->
* a
* b
* c
* d
* e
* f
* g
* h
{{Div col end}}
</pre>
Produces:
{{Div col|colwidth=10em|rules=yes}}
* a
* b
* c
* d
* e
* f
* g
* h
{{Div col end}}
====Gap====
<pre>
{{Div col|colwidth=10em|rules=yes|gap=2em}} <!-- column width of 10em with rules and a gap of 2em -->
* a
* b
* c
* d
* e
* f
* g
* h
{{Div col end}}
</pre>
Produces:
{{Div col|colwidth=10em|rules=yes|gap=2em}}
* a
* b
* c
* d
* e
* f
* g
* h
{{Div col end}}
====Small====
<pre>
{{Div col|small=yes}} <!-- Small = yes -->
* a
* b
* c
* d
* e
* f
* g
* h
{{Div col end}}
</pre>
Produces:
{{Div col|small=yes}}
* a
* b
* c
* d
* e
* f
* g
* h
{{Div col end}}
====Content====
<pre>
{{Div col|colwidth=10em|content= <!-- content parameter doesn't need {{div col end}} -->
* a
* b
* c
* d
* e
* f
* g
* h
}}
</pre>
Produces:
{{Div col|colwidth=10em|content=
* a
* b
* c
* d
* e
* f
* g
* h
}}
====Multiple parameters====
<pre>
{{Div col|colwidth=10em|rules=yes|gap=2em|small=yes}}
* a
* b
* c
* d
* e
* f
* g
* h
{{Div col end}}
</pre>
Produces:
{{Div col|colwidth=10em|rules=yes|gap=2em|small=yes}}
* a
* b
* c
* d
* e
* f
* g
* h
{{Div col end}}
==== Text characters without list markup ====
<pre>
{{div col|colwidth=10em}} <!--Text characters without list markup -->
a
b
c
d
e
f
g
h
{{div col end}}
</pre>
Produces
{{Div col|colwidth=10em}}
a
b
c
d
e
f
g
h
{{Div col end}}
==== Lorem ipsum ====
<pre>
{{div col}} <!--Lorem ipsum -->
{{lorem ipsum}}
{{div col end}}
</pre>
Produces
{{Div col}}
{{lorem ipsum}}
{{Div col end}}
== Limitation ==
=== Sub-lists ===
The underlying CSS system is unable to break sub-lists into columns. Note the uneven formatting below:
<pre>
{{Div col|colwidth=10em|rules=yes|gap=2em|style=column-count:3|content=
* a
* b
* c
** c.d
** c.e
** c.f
* g
* h
}}
</pre>
Produces:
{{Div col|colwidth=10em|rules=yes|gap=2em|style=column-count:3|content=
* a
* b
* c
** c.d
** c.e
** c.f
* g
* h
}}
Turning off the {{code|break-inside: avoid-column;}} rule appears to help.<!-- A full page refersh is needed; just F12-ing doesn't work. -->
==Tracking categories==
* {{category link with count|Pages using div col with unknown parameters}} (for erroneous use of parameter names not documented here)
* {{category link with count|Pages using div col with small parameter}}
==TemplateData==
{{TemplateData header}}
{{#switch: {{BASEPAGENAME}}
|Div col=<templatedata>
{
"description": "Breaks a list into columns. It automatically breaks each column to an equal space, so you do not manually have to find the half way point on two columns. The list is provided by |content= or closed with {{div col end}}.",
"params": {
"colwidth": {
"label": "Column width",
"description": "Specifies the width of columns, and determines dynamically the number of columns based on screen width; more columns will be shown on wider displays.",
"type": "string",
"example": "30em"
},
"rules": {
"label": "Rules",
"description": "Produces vertical rules between the columns if set to yes.",
"type": "string",
"example": "yes"
},
"gap": {
"label": "Gap size",
"description": "Specifies the space between the content of adjacent columns.",
"type": "string",
"example": "2em"
},
"class": {
"label": "HTML class",
"description": "Specifies any class or multiple space-delimited classes.",
"type": "string",
"example": "plainlist nowrap"
},
"style": {
"label": "CSS style",
"description": "Specifies any custom styling.",
"type": "string"
},
"content": {
"label": "Content",
"description": "Specifies the content to divide into columns",
"type": "content"
},
"small": {
"label": "Small font",
"description": "Use a smaller font size (90%)",
"example": "yes",
"type": "string"
}
}
}
</templatedata>
|Div col end=<templatedata>
{
"description": "Ends a multi-column list started by {{div col}}. It takes no parameters.",
"params": {
}
}
</templatedata>
}}
==Redirects==
{{#ifeq:{{ROOTPAGENAME}}|Div col|
* {{Tlx|Col div}}
* {{Tlx|Colbegin}} (but '''not''' {{Tlx|Col begin}} or {{Tlx|Col-begin}})
* {{Tlx|Cols}}
* {{Tlx|Div col start}}
* {{Tlx|Div col begin}}
* {{Tlx|Div-col}}
* {{Tlx|Palmares start}}
}}
{{#ifeq:{{ROOTPAGENAME}}|Div col end|
*{{Tlx|Col div end}}
*{{Tlx|Colend}} (but '''not''' {{Tlx|Col end}})
*{{Tlx|Div end}}
*{{Tlx|Divcol-end}}
*{{Tlx|Divcolend}}
*{{Tlx|Divend}}
*{{Tlx|End div col}}
*{{Tlx|EndDivCol}}
}}
==See also==
{{Column-generating template families}}
<includeonly>{{Sandbox other|
| <!-- CATEGORIES BELOW THIS LINE, PLEASE: -->
[[Category:Multi-column templates]]
[[Category:Templates that add a tracking category]]
<!--?:-->{{#switch:{{PAGENAME}} |Div col= |Div col end=}}
}}</includeonly>
669f943fb4cb12d7993de34efde3e45cd9af8993
Template:Dagger
10
23
37
2021-08-29T12:57:19Z
en>Tom.Reding
0
To proper subpage
wikitext
text/x-wiki
[[File:Dagger-14-plain.png|alt={{if empty|{{{alt|}}}|dagger}}|link=]]<noinclude>{{Documentation}}
</noinclude>
5e0a5d9443b211af401b97ba3be2f6b64c100fd4
Template:TemplateData header
10
49
89
2021-08-29T21:32:29Z
en>SUM1
0
Added "based" parameter to other transclusion
wikitext
text/x-wiki
<div class="templatedata-header">{{#if:{{{noheader|}}}|<!--
noheader:
-->{{Template parameter usage|based=y}}|<!--
+header:
-->This is the {{#if:{{{nolink|}}}|<!--
+header, nolink TD
-->TemplateData|<!--
+header, +link [[TD]]; DEFAULT:
-->[[Wikipedia:TemplateData|TemplateData]]}}<!--
e.o. #if:nolink; DEFAULT:
--> for this template used by [[mw:Extension:TemplateWizard|TemplateWizard]], [[Wikipedia:VisualEditor|VisualEditor]] and other tools. {{Template parameter usage|based=y}}<!--
e.o. #if:noheader
-->}}
'''TemplateData for {{{1|{{BASEPAGENAME}}}}}'''
</div><includeonly><!--
check parameters
-->{{#invoke:Check for unknown parameters|check
|unknown={{template other|1=[[Category:Pages using TemplateData header with unknown parameters|_VALUE_]]}}
|template=Template:TemplateData header
|1 |nolink |noheader
|preview=<div class="error" style="font-weight:normal">Unknown parameter '_VALUE_' in [[Template:TemplateData header]].</div>
}}<!--
-->{{template other|{{sandbox other||
[[Category:Templates using TemplateData]]
}}}}</includeonly><!--
--><noinclude>{{Documentation}}</noinclude>
ddfbb4ae793846b96d4c06330417fa6ed4da2adc
Template:High-use
10
29
49
2021-10-22T01:54:41Z
en>MusikBot II
0
Changed protection settings for "[[Template:High-use]]": [[Wikipedia:High-risk templates|High-risk template or module]]: 3343 transclusions ([[User:MusikBot II/TemplateProtector|more info]]) ([Edit=Require extended confirmed access] (indefinite) [Move=Require extended confirmed access] (indefinite))
wikitext
text/x-wiki
{{#invoke:High-use|main|1={{{1|}}}|2={{{2|}}}|all-pages={{{all-pages|}}}|info={{{info|}}}|demo={{{demo|}}}|form={{{form|}}}|expiry={{{expiry|}}}|system={{{system|}}}}}<noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage; interwiki links go to Wikidata, thank you! -->
</noinclude>
dc5ea36aa88cf409e3280bf65dbfc2566faffe29
Module:Navbar
828
75
141
2021-11-13T05:33:43Z
en>Izno
0
remove unnecessary line
Scribunto
text/plain
local p = {}
local cfg = mw.loadData('Module:Navbar/configuration')
local function get_title_arg(is_collapsible, template)
local title_arg = 1
if is_collapsible then title_arg = 2 end
if template then title_arg = 'template' end
return title_arg
end
local function choose_links(template, args)
-- The show table indicates the default displayed items.
-- view, talk, edit, hist, move, watch
-- TODO: Move to configuration.
local show = {true, true, true, false, false, false}
if template then
show[2] = false
show[3] = false
local index = {t = 2, d = 2, e = 3, h = 4, m = 5, w = 6,
talk = 2, edit = 3, hist = 4, move = 5, watch = 6}
-- TODO: Consider removing TableTools dependency.
for _, v in ipairs(require ('Module:TableTools').compressSparseArray(args)) do
local num = index[v]
if num then show[num] = true end
end
end
local remove_edit_link = args.noedit
if remove_edit_link then show[3] = false end
return show
end
local function add_link(link_description, ul, is_mini, font_style)
local l
if link_description.url then
l = {'[', '', ']'}
else
l = {'[[', '|', ']]'}
end
ul:tag('li')
:addClass('nv-' .. link_description.full)
:wikitext(l[1] .. link_description.link .. l[2])
:tag(is_mini and 'abbr' or 'span')
:attr('title', link_description.html_title)
:cssText(font_style)
:wikitext(is_mini and link_description.mini or link_description.full)
:done()
:wikitext(l[3])
:done()
end
local function make_list(title_text, has_brackets, displayed_links, is_mini, font_style)
local title = mw.title.new(mw.text.trim(title_text), cfg.title_namespace)
if not title then
error(cfg.invalid_title .. title_text)
end
local talkpage = title.talkPageTitle and title.talkPageTitle.fullText or ''
-- TODO: Get link_descriptions and show into the configuration module.
-- link_descriptions should be easier...
local link_descriptions = {
{ ['mini'] = 'v', ['full'] = 'view', ['html_title'] = 'View this template',
['link'] = title.fullText, ['url'] = false },
{ ['mini'] = 't', ['full'] = 'talk', ['html_title'] = 'Discuss this template',
['link'] = talkpage, ['url'] = false },
{ ['mini'] = 'e', ['full'] = 'edit', ['html_title'] = 'Edit this template',
['link'] = title:fullUrl('action=edit'), ['url'] = true },
{ ['mini'] = 'h', ['full'] = 'hist', ['html_title'] = 'History of this template',
['link'] = title:fullUrl('action=history'), ['url'] = true },
{ ['mini'] = 'm', ['full'] = 'move', ['html_title'] = 'Move this template',
['link'] = mw.title.new('Special:Movepage'):fullUrl('target='..title.fullText), ['url'] = true },
{ ['mini'] = 'w', ['full'] = 'watch', ['html_title'] = 'Watch this template',
['link'] = title:fullUrl('action=watch'), ['url'] = true }
}
local ul = mw.html.create('ul')
if has_brackets then
ul:addClass(cfg.classes.brackets)
:cssText(font_style)
end
for i, _ in ipairs(displayed_links) do
if displayed_links[i] then add_link(link_descriptions[i], ul, is_mini, font_style) end
end
return ul:done()
end
function p._navbar(args)
-- TODO: We probably don't need both fontstyle and fontcolor...
local font_style = args.fontstyle
local font_color = args.fontcolor
local is_collapsible = args.collapsible
local is_mini = args.mini
local is_plain = args.plain
local collapsible_class = nil
if is_collapsible then
collapsible_class = cfg.classes.collapsible
if not is_plain then is_mini = 1 end
if font_color then
font_style = (font_style or '') .. '; color: ' .. font_color .. ';'
end
end
local navbar_style = args.style
local div = mw.html.create():tag('div')
div
:addClass(cfg.classes.navbar)
:addClass(cfg.classes.plainlinks)
:addClass(cfg.classes.horizontal_list)
:addClass(collapsible_class) -- we made the determination earlier
:cssText(navbar_style)
if is_mini then div:addClass(cfg.classes.mini) end
local box_text = (args.text or cfg.box_text) .. ' '
-- the concatenated space guarantees the box text is separated
if not (is_mini or is_plain) then
div
:tag('span')
:addClass(cfg.classes.box_text)
:cssText(font_style)
:wikitext(box_text)
end
local template = args.template
local displayed_links = choose_links(template, args)
local has_brackets = args.brackets
local title_arg = get_title_arg(is_collapsible, template)
local title_text = args[title_arg] or (':' .. mw.getCurrentFrame():getParent():getTitle())
local list = make_list(title_text, has_brackets, displayed_links, is_mini, font_style)
div:node(list)
if is_collapsible then
local title_text_class
if is_mini then
title_text_class = cfg.classes.collapsible_title_mini
else
title_text_class = cfg.classes.collapsible_title_full
end
div:done()
:tag('div')
:addClass(title_text_class)
:cssText(font_style)
:wikitext(args[1])
end
return mw.getCurrentFrame():extensionTag{
name = 'templatestyles', args = { src = cfg.templatestyles }
} .. tostring(div:done())
end
function p.navbar(frame)
return p._navbar(require('Module:Arguments').getArgs(frame))
end
return p
a5c8d3a8f8beb18984ea7f145ddbdf88a065d23e
Module:Navbar/configuration
828
76
143
2021-11-13T05:39:10Z
en>Izno
0
well, since I edited the other one...
Scribunto
text/plain
return {
['templatestyles'] = 'Module:Navbar/styles.css',
['box_text'] = 'This box: ', -- default text box when not plain or mini
['title_namespace'] = 'Template', -- namespace to default to for title
['invalid_title'] = 'Invalid title ',
['classes'] = { -- set a line to nil if you don't want it
['navbar'] = 'navbar',
['plainlinks'] = 'plainlinks', -- plainlinks
['horizontal_list'] = 'hlist', -- horizontal list class
['mini'] = 'navbar-mini', -- class indicating small links in the navbar
['this_box'] = 'navbar-boxtext',
['brackets'] = 'navbar-brackets',
-- 'collapsible' is the key for a class to indicate the navbar is
-- setting up the collapsible element in addition to the normal
-- navbar.
['collapsible'] = 'navbar-collapse',
['collapsible_title_mini'] = 'navbar-ct-mini',
['collapsible_title_full'] = 'navbar-ct-full'
}
}
bbf3d86b48a5b40835e8e232ae9821e6bca390ec
Template:Lorem ipsum/p-cond
10
34
59
2021-11-14T14:06:20Z
en>GKFX
0
Reduce expansion depth
wikitext
text/x-wiki
{{#ifeq: {{{2|{{{join|no}}}}}} | yes
|
| {{#switch: {{#invoke:string|sub|x{{{1|}}}|2|2}}
| : | # | * =
| #default = <p><!--
-->}}
}}</p><noinclude>{{Documentation |content=
Conditional paragraph begin. Generates a begin p-tag if needed, depending on ''prefix'' and ''join'':
* nothing, in the case of joins;
* nothing, where prefix metacharacters are present like (<code>*</code>, <code>#</code>, or <code>:</code>) which must sit in column 1;
* a begin p-tag before the first lorem paragraph, in other cases.
== Usage ==
{{tlc|Lorem ipsum/p-cond|''prefix''|''join''}}
}}</noinclude>
e2485ca32977a604ce4bbb108cdd1ab27daf6659
Template:Lorem ipsum/p-end-cond
10
35
61
2021-11-14T14:07:57Z
en>GKFX
0
Reduce expansion depth
wikitext
text/x-wiki
{{#ifeq: {{{2|{{{join|no}}}}}} | yes
|
| {{#switch: {{#invoke:string|sub|x{{{1|}}}|2|2}}
| : | # | * =
| #default = </p><!--
-->}}
}}<noinclude>{{Documentation |content=
Conditional paragraph end. Generates an p-tag if needed, depending on ''prefix'' and ''join'':
* nothing, in the case of joins;
* nothing, where prefix metacharacters are present like (<code>*</code>, <code>#</code>, or <code>:</code>) which must sit in column 1, don't acquire begin-p tags, and therefore don't need an end p-tag;
* an end p-tag after the lorem paragraph emitted last, in other cases.
== Usage ==
{{tlc|Lorem ipsum/p-end-cond|''prefix''|''join''}}
}}</noinclude>
9baedbe65b1f076b223137136f33de217b8f939f
Template:Main other
10
37
65
2021-12-10T16:08:06Z
en>Xaosflux
0
<!-- Add categories to the /doc subpage; interwikis go to Wikidata, thank you! -->
wikitext
text/x-wiki
{{#switch:
<!--If no or empty "demospace" parameter then detect namespace-->
{{#if:{{{demospace|}}}
| {{lc: {{{demospace}}} }} <!--Use lower case "demospace"-->
| {{#ifeq:{{NAMESPACE}}|{{ns:0}}
| main
| other
}}
}}
| main = {{{1|}}}
| other
| #default = {{{2|}}}
}}<noinclude>
{{documentation}}
<!-- Add categories to the /doc subpage; interwikis go to Wikidata, thank you! -->
</noinclude>
86ad907ffeea3cc545159e00cd1f2d6433946450
Module:Lua banner
828
71
133
2021-12-10T22:30:39Z
en>Fayenatic london
0
Update categories, see [[Wikipedia:Categories for discussion/Log/2021 October 31]]
Scribunto
text/plain
-- This module implements the {{lua}} template.
local yesno = require('Module:Yesno')
local mList = require('Module:List')
local mTableTools = require('Module:TableTools')
local mMessageBox = require('Module:Message box')
local p = {}
function p.main(frame)
local origArgs = frame:getParent().args
local args = {}
for k, v in pairs(origArgs) do
v = v:match('^%s*(.-)%s*$')
if v ~= '' then
args[k] = v
end
end
return p._main(args)
end
function p._main(args)
local modules = mTableTools.compressSparseArray(args)
local box = p.renderBox(modules)
local trackingCategories = p.renderTrackingCategories(args, modules)
return box .. trackingCategories
end
function p.renderBox(modules)
local boxArgs = {}
if #modules < 1 then
boxArgs.text = '<strong class="error">Error: no modules specified</strong>'
else
local moduleLinks = {}
for i, module in ipairs(modules) do
moduleLinks[i] = string.format('[[:%s]]', module)
local maybeSandbox = mw.title.new(module .. '/sandbox')
if maybeSandbox.exists then
moduleLinks[i] = moduleLinks[i] .. string.format(' ([[:%s|sandbox]])', maybeSandbox.fullText)
end
end
local moduleList = mList.makeList('bulleted', moduleLinks)
local title = mw.title.getCurrentTitle()
if title.subpageText == "doc" then
title = title.basePageTitle
end
if title.contentModel == "Scribunto" then
boxArgs.text = 'This module depends on the following other modules:' .. moduleList
else
boxArgs.text = 'This template uses [[Wikipedia:Lua|Lua]]:\n' .. moduleList
end
end
boxArgs.type = 'notice'
boxArgs.small = true
boxArgs.image = '[[File:Lua-Logo.svg|30px|alt=|link=]]'
return mMessageBox.main('mbox', boxArgs)
end
function p.renderTrackingCategories(args, modules, titleObj)
if yesno(args.nocat) then
return ''
end
local cats = {}
-- Error category
if #modules < 1 then
cats[#cats + 1] = 'Lua templates with errors'
end
-- Lua templates category
titleObj = titleObj or mw.title.getCurrentTitle()
local subpageBlacklist = {
doc = true,
sandbox = true,
sandbox2 = true,
testcases = true
}
if not subpageBlacklist[titleObj.subpageText] then
local protCatName
if titleObj.namespace == 10 then
local category = args.category
if not category then
local categories = {
['Module:String'] = 'Templates based on the String Lua module',
['Module:Math'] = 'Templates based on the Math Lua module',
['Module:BaseConvert'] = 'Templates based on the BaseConvert Lua module',
['Module:Citation'] = 'Templates based on the Citation/CS1 Lua module'
}
categories['Module:Citation/CS1'] = categories['Module:Citation']
category = modules[1] and categories[modules[1]]
category = category or 'Lua-based templates'
end
cats[#cats + 1] = category
protCatName = "Templates using under-protected Lua modules"
elseif titleObj.namespace == 828 then
protCatName = "Modules depending on under-protected modules"
end
if not args.noprotcat and protCatName then
local protLevels = {
autoconfirmed = 1,
extendedconfirmed = 2,
templateeditor = 3,
sysop = 4
}
local currentProt
if titleObj.id ~= 0 then
-- id is 0 (page does not exist) if am previewing before creating a template.
currentProt = titleObj.protectionLevels["edit"][1]
end
if currentProt == nil then currentProt = 0 else currentProt = protLevels[currentProt] end
for i, module in ipairs(modules) do
if module ~= "WP:libraryUtil" then
local moduleProt = mw.title.new(module).protectionLevels["edit"][1]
if moduleProt == nil then moduleProt = 0 else moduleProt = protLevels[moduleProt] end
if moduleProt < currentProt then
cats[#cats + 1] = protCatName
break
end
end
end
end
end
for i, cat in ipairs(cats) do
cats[i] = string.format('[[Category:%s]]', cat)
end
return table.concat(cats)
end
return p
6e3bedcc849ff22d4f702708965c39b97d7e8585
Module:Transclusion count
828
86
163
2021-12-22T22:48:57Z
en>GKFX
0
Correction to tabulate function
Scribunto
text/plain
local p = {}
function p.fetch(frame)
local template = nil
local return_value = nil
-- Use demo parameter if it exists, otherswise use current template name
local namespace = mw.title.getCurrentTitle().namespace
if frame.args["demo"] and frame.args["demo"] ~= "" then
template = frame.args["demo"]
elseif namespace == 10 then -- Template namespace
template = mw.title.getCurrentTitle().text
elseif namespace == 828 then -- Module namespace
template = (mw.site.namespaces[828].name .. ":" .. mw.title.getCurrentTitle().text)
end
-- If in template or module namespace, look up count in /data
if template ~= nil then
namespace = mw.title.new(template, "Template").namespace
if namespace == 10 or namespace == 828 then
template = mw.ustring.gsub(template, "/doc$", "") -- strip /doc from end
local index = mw.ustring.sub(mw.title.new(template).text,1,1)
local status, data = pcall(function ()
return(mw.loadData('Module:Transclusion_count/data/' .. (mw.ustring.find(index, "%a") and index or "other")))
end)
if status then
return_value = tonumber(data[mw.ustring.gsub(template, " ", "_")])
end
end
end
-- If database value doesn't exist, use value passed to template
if return_value == nil and frame.args[1] ~= nil then
local arg1=mw.ustring.match(frame.args[1], '[%d,]+')
if arg1 and arg1 ~= '' then
return_value = tonumber(frame:callParserFunction('formatnum', arg1, 'R'))
end
end
return return_value
end
-- Tabulate this data for [[Wikipedia:Database reports/Templates transcluded on the most pages]]
function p.tabulate(frame)
local list = {}
for i = 65, 91 do
local data = mw.loadData('Module:Transclusion count/data/' .. ((i == 91) and 'other' or string.char(i)))
for name, count in pairs(data) do
table.insert(list, {mw.title.new(name, "Template").fullText, count})
end
end
table.sort(list, function(a, b)
return (a[2] == b[2]) and (a[1] < b[1]) or (a[2] > b[2])
end)
local lang = mw.getContentLanguage();
for i = 1, #list do
list[i] = ('|-\n| %d || [[%s]] || %s\n'):format(i, list[i][1]:gsub('_', ' '), lang:formatNum(list[i][2]))
end
return table.concat(list)
end
return p
9b2940dfd623cf550f748fd5bfc25b7f69cd14cd
Module:Navbar/styles.css
828
77
145
2022-01-03T23:12:15Z
en>Izno
0
navbar styles that were moved to parent templates
sanitized-css
text/css
/* {{pp|small=yes}} */
.navbar {
display: inline;
font-size: 88%;
font-weight: normal;
}
.navbar-collapse {
float: left;
text-align: left;
}
.navbar-boxtext {
word-spacing: 0;
}
.navbar ul {
display: inline-block;
white-space: nowrap;
line-height: inherit;
}
.navbar-brackets::before {
margin-right: -0.125em;
content: '[ ';
}
.navbar-brackets::after {
margin-left: -0.125em;
content: ' ]';
}
.navbar li {
word-spacing: -0.125em;
}
.navbar a > span,
.navbar a > abbr {
text-decoration: inherit;
}
.navbar-mini abbr {
font-variant: small-caps;
border-bottom: none;
text-decoration: none;
cursor: inherit;
}
.navbar-ct-full {
font-size: 114%;
margin: 0 7em;
}
.navbar-ct-mini {
font-size: 114%;
margin: 0 4em;
}
9d4056f949b4f0b159e3d40dfb1a5f01e72f9571
Template:Maybe
10
38
67
2022-01-07T13:56:48Z
en>Ftrebien
0
Tweak: same chrominance as Yes
wikitext
text/x-wiki
<noinclude>{| class="wikitable"
|-
|</noinclude>style="background: #FF8; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}" class="table-maybe"|{{{1|Maybe}}}<noinclude>
|}
{{documentation|Template:Table cell templates/doc}}
</noinclude>
513f72a3cd1dbb2421df25f04c55f3064e38ab52
Template:Yes
10
57
105
2022-01-10T13:03:15Z
en>Paine Ellsworth
0
m
wikitext
text/x-wiki
<noinclude>
{| class="wikitable"
|-
|</noinclude>style="background:#9EFF9E;vertical-align:middle;text-align:{{{align|center}}};{{{style|}}}" class="table-yes"|{{{1|Yes}}}<noinclude>
|}
{{documentation}}
</noinclude>
d235fc79a2e65678ca64fc48366ae7aaddb27d0b
Template:No
10
40
71
2022-01-10T13:04:47Z
en>Paine Ellsworth
0
per edit request at [[Template talk:Yes#Template-protected edit request on 7 January 2022]] - slightly lighten for accessibility
wikitext
text/x-wiki
<noinclude>{| class="wikitable"
|-
|</noinclude>style="background:#FFC7C7;vertical-align:middle;text-align:{{{align|center}}};{{{style|}}}" class="table-no"|{{{1|No}}}<noinclude>
|}
{{documentation}}
</noinclude>
653ef43ca2ef84cc0d6d8042d87932e4accdbcab
Module:Documentation
828
62
115
2022-01-16T01:32:10Z
en>Matt Fitzpatrick
0
sync from sandbox, add aria role and label to container
Scribunto
text/plain
-- This module implements {{documentation}}.
-- Get required modules.
local getArgs = require('Module:Arguments').getArgs
-- Get the config table.
local cfg = mw.loadData('Module:Documentation/config')
local p = {}
-- Often-used functions.
local ugsub = mw.ustring.gsub
----------------------------------------------------------------------------
-- Helper functions
--
-- These are defined as local functions, but are made available in the p
-- table for testing purposes.
----------------------------------------------------------------------------
local function message(cfgKey, valArray, expectType)
--[[
-- Gets a message from the cfg table and formats it if appropriate.
-- The function raises an error if the value from the cfg table is not
-- of the type expectType. The default type for expectType is 'string'.
-- If the table valArray is present, strings such as $1, $2 etc. in the
-- message are substituted with values from the table keys [1], [2] etc.
-- For example, if the message "foo-message" had the value 'Foo $2 bar $1.',
-- message('foo-message', {'baz', 'qux'}) would return "Foo qux bar baz."
--]]
local msg = cfg[cfgKey]
expectType = expectType or 'string'
if type(msg) ~= expectType then
error('message: type error in message cfg.' .. cfgKey .. ' (' .. expectType .. ' expected, got ' .. type(msg) .. ')', 2)
end
if not valArray then
return msg
end
local function getMessageVal(match)
match = tonumber(match)
return valArray[match] or error('message: no value found for key $' .. match .. ' in message cfg.' .. cfgKey, 4)
end
return ugsub(msg, '$([1-9][0-9]*)', getMessageVal)
end
p.message = message
local function makeWikilink(page, display)
if display then
return mw.ustring.format('[[%s|%s]]', page, display)
else
return mw.ustring.format('[[%s]]', page)
end
end
p.makeWikilink = makeWikilink
local function makeCategoryLink(cat, sort)
local catns = mw.site.namespaces[14].name
return makeWikilink(catns .. ':' .. cat, sort)
end
p.makeCategoryLink = makeCategoryLink
local function makeUrlLink(url, display)
return mw.ustring.format('[%s %s]', url, display)
end
p.makeUrlLink = makeUrlLink
local function makeToolbar(...)
local ret = {}
local lim = select('#', ...)
if lim < 1 then
return nil
end
for i = 1, lim do
ret[#ret + 1] = select(i, ...)
end
-- 'documentation-toolbar'
return '<span class="' .. message('toolbar-class') .. '">('
.. table.concat(ret, ' | ') .. ')</span>'
end
p.makeToolbar = makeToolbar
----------------------------------------------------------------------------
-- Argument processing
----------------------------------------------------------------------------
local function makeInvokeFunc(funcName)
return function (frame)
local args = getArgs(frame, {
valueFunc = function (key, value)
if type(value) == 'string' then
value = value:match('^%s*(.-)%s*$') -- Remove whitespace.
if key == 'heading' or value ~= '' then
return value
else
return nil
end
else
return value
end
end
})
return p[funcName](args)
end
end
----------------------------------------------------------------------------
-- Entry points
----------------------------------------------------------------------------
function p.nonexistent(frame)
if mw.title.getCurrentTitle().subpageText == 'testcases' then
return frame:expandTemplate{title = 'module test cases notice'}
else
return p.main(frame)
end
end
p.main = makeInvokeFunc('_main')
function p._main(args)
--[[
-- This function defines logic flow for the module.
-- @args - table of arguments passed by the user
--]]
local env = p.getEnvironment(args)
local root = mw.html.create()
root
:wikitext(p._getModuleWikitext(args, env))
:wikitext(p.protectionTemplate(env))
:wikitext(p.sandboxNotice(args, env))
:tag('div')
-- 'documentation-container'
:addClass(message('container'))
:attr('role', 'complementary')
:attr('aria-labelledby', args.heading ~= '' and 'documentation-heading' or nil)
:attr('aria-label', args.heading == '' and 'Documentation' or nil)
:newline()
:tag('div')
-- 'documentation'
:addClass(message('main-div-classes'))
:newline()
:wikitext(p._startBox(args, env))
:wikitext(p._content(args, env))
:tag('div')
-- 'documentation-clear'
:addClass(message('clear'))
:done()
:newline()
:done()
:wikitext(p._endBox(args, env))
:done()
:wikitext(p.addTrackingCategories(env))
-- 'Module:Documentation/styles.css'
return mw.getCurrentFrame():extensionTag (
'templatestyles', '', {src=cfg['templatestyles']
}) .. tostring(root)
end
----------------------------------------------------------------------------
-- Environment settings
----------------------------------------------------------------------------
function p.getEnvironment(args)
--[[
-- Returns a table with information about the environment, including title
-- objects and other namespace- or path-related data.
-- @args - table of arguments passed by the user
--
-- Title objects include:
-- env.title - the page we are making documentation for (usually the current title)
-- env.templateTitle - the template (or module, file, etc.)
-- env.docTitle - the /doc subpage.
-- env.sandboxTitle - the /sandbox subpage.
-- env.testcasesTitle - the /testcases subpage.
--
-- Data includes:
-- env.protectionLevels - the protection levels table of the title object.
-- env.subjectSpace - the number of the title's subject namespace.
-- env.docSpace - the number of the namespace the title puts its documentation in.
-- env.docpageBase - the text of the base page of the /doc, /sandbox and /testcases pages, with namespace.
-- env.compareUrl - URL of the Special:ComparePages page comparing the sandbox with the template.
--
-- All table lookups are passed through pcall so that errors are caught. If an error occurs, the value
-- returned will be nil.
--]]
local env, envFuncs = {}, {}
-- Set up the metatable. If triggered we call the corresponding function in the envFuncs table. The value
-- returned by that function is memoized in the env table so that we don't call any of the functions
-- more than once. (Nils won't be memoized.)
setmetatable(env, {
__index = function (t, key)
local envFunc = envFuncs[key]
if envFunc then
local success, val = pcall(envFunc)
if success then
env[key] = val -- Memoise the value.
return val
end
end
return nil
end
})
function envFuncs.title()
-- The title object for the current page, or a test page passed with args.page.
local title
local titleArg = args.page
if titleArg then
title = mw.title.new(titleArg)
else
title = mw.title.getCurrentTitle()
end
return title
end
function envFuncs.templateTitle()
--[[
-- The template (or module, etc.) title object.
-- Messages:
-- 'sandbox-subpage' --> 'sandbox'
-- 'testcases-subpage' --> 'testcases'
--]]
local subjectSpace = env.subjectSpace
local title = env.title
local subpage = title.subpageText
if subpage == message('sandbox-subpage') or subpage == message('testcases-subpage') then
return mw.title.makeTitle(subjectSpace, title.baseText)
else
return mw.title.makeTitle(subjectSpace, title.text)
end
end
function envFuncs.docTitle()
--[[
-- Title object of the /doc subpage.
-- Messages:
-- 'doc-subpage' --> 'doc'
--]]
local title = env.title
local docname = args[1] -- User-specified doc page.
local docpage
if docname then
docpage = docname
else
docpage = env.docpageBase .. '/' .. message('doc-subpage')
end
return mw.title.new(docpage)
end
function envFuncs.sandboxTitle()
--[[
-- Title object for the /sandbox subpage.
-- Messages:
-- 'sandbox-subpage' --> 'sandbox'
--]]
return mw.title.new(env.docpageBase .. '/' .. message('sandbox-subpage'))
end
function envFuncs.testcasesTitle()
--[[
-- Title object for the /testcases subpage.
-- Messages:
-- 'testcases-subpage' --> 'testcases'
--]]
return mw.title.new(env.docpageBase .. '/' .. message('testcases-subpage'))
end
function envFuncs.protectionLevels()
-- The protection levels table of the title object.
return env.title.protectionLevels
end
function envFuncs.subjectSpace()
-- The subject namespace number.
return mw.site.namespaces[env.title.namespace].subject.id
end
function envFuncs.docSpace()
-- The documentation namespace number. For most namespaces this is the
-- same as the subject namespace. However, pages in the Article, File,
-- MediaWiki or Category namespaces must have their /doc, /sandbox and
-- /testcases pages in talk space.
local subjectSpace = env.subjectSpace
if subjectSpace == 0 or subjectSpace == 6 or subjectSpace == 8 or subjectSpace == 14 then
return subjectSpace + 1
else
return subjectSpace
end
end
function envFuncs.docpageBase()
-- The base page of the /doc, /sandbox, and /testcases subpages.
-- For some namespaces this is the talk page, rather than the template page.
local templateTitle = env.templateTitle
local docSpace = env.docSpace
local docSpaceText = mw.site.namespaces[docSpace].name
-- Assemble the link. docSpace is never the main namespace, so we can hardcode the colon.
return docSpaceText .. ':' .. templateTitle.text
end
function envFuncs.compareUrl()
-- Diff link between the sandbox and the main template using [[Special:ComparePages]].
local templateTitle = env.templateTitle
local sandboxTitle = env.sandboxTitle
if templateTitle.exists and sandboxTitle.exists then
local compareUrl = mw.uri.fullUrl(
'Special:ComparePages',
{ page1 = templateTitle.prefixedText, page2 = sandboxTitle.prefixedText}
)
return tostring(compareUrl)
else
return nil
end
end
return env
end
----------------------------------------------------------------------------
-- Auxiliary templates
----------------------------------------------------------------------------
p.getModuleWikitext = makeInvokeFunc('_getModuleWikitext')
function p._getModuleWikitext(args, env)
local currentTitle = mw.title.getCurrentTitle()
if currentTitle.contentModel ~= 'Scribunto' then return end
pcall(require, currentTitle.prefixedText) -- if it fails, we don't care
local moduleWikitext = package.loaded["Module:Module wikitext"]
if moduleWikitext then
return moduleWikitext.main()
end
end
function p.sandboxNotice(args, env)
--[=[
-- Generates a sandbox notice for display above sandbox pages.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'sandbox-notice-image' --> '[[Image:Sandbox.svg|50px|alt=|link=]]'
-- 'sandbox-notice-blurb' --> 'This is the $1 for $2.'
-- 'sandbox-notice-diff-blurb' --> 'This is the $1 for $2 ($3).'
-- 'sandbox-notice-pagetype-template' --> '[[Wikipedia:Template test cases|template sandbox]] page'
-- 'sandbox-notice-pagetype-module' --> '[[Wikipedia:Template test cases|module sandbox]] page'
-- 'sandbox-notice-pagetype-other' --> 'sandbox page'
-- 'sandbox-notice-compare-link-display' --> 'diff'
-- 'sandbox-notice-testcases-blurb' --> 'See also the companion subpage for $1.'
-- 'sandbox-notice-testcases-link-display' --> 'test cases'
-- 'sandbox-category' --> 'Template sandboxes'
--]=]
local title = env.title
local sandboxTitle = env.sandboxTitle
local templateTitle = env.templateTitle
local subjectSpace = env.subjectSpace
if not (subjectSpace and title and sandboxTitle and templateTitle
and mw.title.equals(title, sandboxTitle)) then
return nil
end
-- Build the table of arguments to pass to {{ombox}}. We need just two fields, "image" and "text".
local omargs = {}
omargs.image = message('sandbox-notice-image')
-- Get the text. We start with the opening blurb, which is something like
-- "This is the template sandbox for [[Template:Foo]] (diff)."
local text = ''
local pagetype
if subjectSpace == 10 then
pagetype = message('sandbox-notice-pagetype-template')
elseif subjectSpace == 828 then
pagetype = message('sandbox-notice-pagetype-module')
else
pagetype = message('sandbox-notice-pagetype-other')
end
local templateLink = makeWikilink(templateTitle.prefixedText)
local compareUrl = env.compareUrl
if compareUrl then
local compareDisplay = message('sandbox-notice-compare-link-display')
local compareLink = makeUrlLink(compareUrl, compareDisplay)
text = text .. message('sandbox-notice-diff-blurb', {pagetype, templateLink, compareLink})
else
text = text .. message('sandbox-notice-blurb', {pagetype, templateLink})
end
-- Get the test cases page blurb if the page exists. This is something like
-- "See also the companion subpage for [[Template:Foo/testcases|test cases]]."
local testcasesTitle = env.testcasesTitle
if testcasesTitle and testcasesTitle.exists then
if testcasesTitle.contentModel == "Scribunto" then
local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display')
local testcasesRunLinkDisplay = message('sandbox-notice-testcases-run-link-display')
local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay)
local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay)
text = text .. '<br />' .. message('sandbox-notice-testcases-run-blurb', {testcasesLink, testcasesRunLink})
else
local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display')
local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay)
text = text .. '<br />' .. message('sandbox-notice-testcases-blurb', {testcasesLink})
end
end
-- Add the sandbox to the sandbox category.
omargs.text = text .. makeCategoryLink(message('sandbox-category'))
-- 'documentation-clear'
return '<div class="' .. message('clear') .. '"></div>'
.. require('Module:Message box').main('ombox', omargs)
end
function p.protectionTemplate(env)
-- Generates the padlock icon in the top right.
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'protection-template' --> 'pp-template'
-- 'protection-template-args' --> {docusage = 'yes'}
local protectionLevels = env.protectionLevels
if not protectionLevels then
return nil
end
local editProt = protectionLevels.edit and protectionLevels.edit[1]
local moveProt = protectionLevels.move and protectionLevels.move[1]
if editProt then
-- The page is edit-protected.
return require('Module:Protection banner')._main{
message('protection-reason-edit'), small = true
}
elseif moveProt and moveProt ~= 'autoconfirmed' then
-- The page is move-protected but not edit-protected. Exclude move
-- protection with the level "autoconfirmed", as this is equivalent to
-- no move protection at all.
return require('Module:Protection banner')._main{
action = 'move', small = true
}
else
return nil
end
end
----------------------------------------------------------------------------
-- Start box
----------------------------------------------------------------------------
p.startBox = makeInvokeFunc('_startBox')
function p._startBox(args, env)
--[[
-- This function generates the start box.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- The actual work is done by p.makeStartBoxLinksData and p.renderStartBoxLinks which make
-- the [view] [edit] [history] [purge] links, and by p.makeStartBoxData and p.renderStartBox
-- which generate the box HTML.
--]]
env = env or p.getEnvironment(args)
local links
local content = args.content
if not content or args[1] then
-- No need to include the links if the documentation is on the template page itself.
local linksData = p.makeStartBoxLinksData(args, env)
if linksData then
links = p.renderStartBoxLinks(linksData)
end
end
-- Generate the start box html.
local data = p.makeStartBoxData(args, env, links)
if data then
return p.renderStartBox(data)
else
-- User specified no heading.
return nil
end
end
function p.makeStartBoxLinksData(args, env)
--[[
-- Does initial processing of data to make the [view] [edit] [history] [purge] links.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'view-link-display' --> 'view'
-- 'edit-link-display' --> 'edit'
-- 'history-link-display' --> 'history'
-- 'purge-link-display' --> 'purge'
-- 'module-preload' --> 'Template:Documentation/preload-module-doc'
-- 'docpage-preload' --> 'Template:Documentation/preload'
-- 'create-link-display' --> 'create'
--]]
local subjectSpace = env.subjectSpace
local title = env.title
local docTitle = env.docTitle
if not title or not docTitle then
return nil
end
if docTitle.isRedirect then
docTitle = docTitle.redirectTarget
end
local data = {}
data.title = title
data.docTitle = docTitle
-- View, display, edit, and purge links if /doc exists.
data.viewLinkDisplay = message('view-link-display')
data.editLinkDisplay = message('edit-link-display')
data.historyLinkDisplay = message('history-link-display')
data.purgeLinkDisplay = message('purge-link-display')
-- Create link if /doc doesn't exist.
local preload = args.preload
if not preload then
if subjectSpace == 828 then -- Module namespace
preload = message('module-preload')
else
preload = message('docpage-preload')
end
end
data.preload = preload
data.createLinkDisplay = message('create-link-display')
return data
end
function p.renderStartBoxLinks(data)
--[[
-- Generates the [view][edit][history][purge] or [create][purge] links from the data table.
-- @data - a table of data generated by p.makeStartBoxLinksData
--]]
local function escapeBrackets(s)
-- Escapes square brackets with HTML entities.
s = s:gsub('%[', '[') -- Replace square brackets with HTML entities.
s = s:gsub('%]', ']')
return s
end
local ret
local docTitle = data.docTitle
local title = data.title
local purgeLink = makeUrlLink(title:fullUrl{action = 'purge'}, data.purgeLinkDisplay)
if docTitle.exists then
local viewLink = makeWikilink(docTitle.prefixedText, data.viewLinkDisplay)
local editLink = makeUrlLink(docTitle:fullUrl{action = 'edit'}, data.editLinkDisplay)
local historyLink = makeUrlLink(docTitle:fullUrl{action = 'history'}, data.historyLinkDisplay)
ret = '[%s] [%s] [%s] [%s]'
ret = escapeBrackets(ret)
ret = mw.ustring.format(ret, viewLink, editLink, historyLink, purgeLink)
else
local createLink = makeUrlLink(docTitle:fullUrl{action = 'edit', preload = data.preload}, data.createLinkDisplay)
ret = '[%s] [%s]'
ret = escapeBrackets(ret)
ret = mw.ustring.format(ret, createLink, purgeLink)
end
return ret
end
function p.makeStartBoxData(args, env, links)
--[=[
-- Does initial processing of data to pass to the start-box render function, p.renderStartBox.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- @links - a string containing the [view][edit][history][purge] links - could be nil if there's an error.
--
-- Messages:
-- 'documentation-icon-wikitext' --> '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]'
-- 'template-namespace-heading' --> 'Template documentation'
-- 'module-namespace-heading' --> 'Module documentation'
-- 'file-namespace-heading' --> 'Summary'
-- 'other-namespaces-heading' --> 'Documentation'
-- 'testcases-create-link-display' --> 'create'
--]=]
local subjectSpace = env.subjectSpace
if not subjectSpace then
-- Default to an "other namespaces" namespace, so that we get at least some output
-- if an error occurs.
subjectSpace = 2
end
local data = {}
-- Heading
local heading = args.heading -- Blank values are not removed.
if heading == '' then
-- Don't display the start box if the heading arg is defined but blank.
return nil
end
if heading then
data.heading = heading
elseif subjectSpace == 10 then -- Template namespace
data.heading = message('documentation-icon-wikitext') .. ' ' .. message('template-namespace-heading')
elseif subjectSpace == 828 then -- Module namespace
data.heading = message('documentation-icon-wikitext') .. ' ' .. message('module-namespace-heading')
elseif subjectSpace == 6 then -- File namespace
data.heading = message('file-namespace-heading')
else
data.heading = message('other-namespaces-heading')
end
-- Heading CSS
local headingStyle = args['heading-style']
if headingStyle then
data.headingStyleText = headingStyle
else
-- 'documentation-heading'
data.headingClass = message('main-div-heading-class')
end
-- Data for the [view][edit][history][purge] or [create] links.
if links then
-- 'mw-editsection-like plainlinks'
data.linksClass = message('start-box-link-classes')
data.links = links
end
return data
end
function p.renderStartBox(data)
-- Renders the start box html.
-- @data - a table of data generated by p.makeStartBoxData.
local sbox = mw.html.create('div')
sbox
-- 'documentation-startbox'
:addClass(message('start-box-class'))
:newline()
:tag('span')
:addClass(data.headingClass)
:attr('id', 'documentation-heading')
:cssText(data.headingStyleText)
:wikitext(data.heading)
local links = data.links
if links then
sbox:tag('span')
:addClass(data.linksClass)
:attr('id', data.linksId)
:wikitext(links)
end
return tostring(sbox)
end
----------------------------------------------------------------------------
-- Documentation content
----------------------------------------------------------------------------
p.content = makeInvokeFunc('_content')
function p._content(args, env)
-- Displays the documentation contents
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
env = env or p.getEnvironment(args)
local docTitle = env.docTitle
local content = args.content
if not content and docTitle and docTitle.exists then
content = args._content or mw.getCurrentFrame():expandTemplate{title = docTitle.prefixedText}
end
-- The line breaks below are necessary so that "=== Headings ===" at the start and end
-- of docs are interpreted correctly.
return '\n' .. (content or '') .. '\n'
end
p.contentTitle = makeInvokeFunc('_contentTitle')
function p._contentTitle(args, env)
env = env or p.getEnvironment(args)
local docTitle = env.docTitle
if not args.content and docTitle and docTitle.exists then
return docTitle.prefixedText
else
return ''
end
end
----------------------------------------------------------------------------
-- End box
----------------------------------------------------------------------------
p.endBox = makeInvokeFunc('_endBox')
function p._endBox(args, env)
--[=[
-- This function generates the end box (also known as the link box).
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
--]=]
-- Get environment data.
env = env or p.getEnvironment(args)
local subjectSpace = env.subjectSpace
local docTitle = env.docTitle
if not subjectSpace or not docTitle then
return nil
end
-- Check whether we should output the end box at all. Add the end
-- box by default if the documentation exists or if we are in the
-- user, module or template namespaces.
local linkBox = args['link box']
if linkBox == 'off'
or not (
docTitle.exists
or subjectSpace == 2
or subjectSpace == 828
or subjectSpace == 10
)
then
return nil
end
-- Assemble the link box.
local text = ''
if linkBox then
text = text .. linkBox
else
text = text .. (p.makeDocPageBlurb(args, env) or '') -- "This documentation is transcluded from [[Foo]]."
if subjectSpace == 2 or subjectSpace == 10 or subjectSpace == 828 then
-- We are in the user, template or module namespaces.
-- Add sandbox and testcases links.
-- "Editors can experiment in this template's sandbox and testcases pages."
text = text .. (p.makeExperimentBlurb(args, env) or '') .. '<br />'
if not args.content and not args[1] then
-- "Please add categories to the /doc subpage."
-- Don't show this message with inline docs or with an explicitly specified doc page,
-- as then it is unclear where to add the categories.
text = text .. (p.makeCategoriesBlurb(args, env) or '')
end
text = text .. ' ' .. (p.makeSubpagesBlurb(args, env) or '') --"Subpages of this template"
end
end
local box = mw.html.create('div')
-- 'documentation-metadata'
box:attr('role', 'note')
:addClass(message('end-box-class'))
-- 'plainlinks'
:addClass(message('end-box-plainlinks'))
:wikitext(text)
:done()
return '\n' .. tostring(box)
end
function p.makeDocPageBlurb(args, env)
--[=[
-- Makes the blurb "This documentation is transcluded from [[Template:Foo]] (edit, history)".
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'edit-link-display' --> 'edit'
-- 'history-link-display' --> 'history'
-- 'transcluded-from-blurb' -->
-- 'The above [[Wikipedia:Template documentation|documentation]]
-- is [[Help:Transclusion|transcluded]] from $1.'
-- 'module-preload' --> 'Template:Documentation/preload-module-doc'
-- 'create-link-display' --> 'create'
-- 'create-module-doc-blurb' -->
-- 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].'
--]=]
local docTitle = env.docTitle
if not docTitle then
return nil
end
local ret
if docTitle.exists then
-- /doc exists; link to it.
local docLink = makeWikilink(docTitle.prefixedText)
local editUrl = docTitle:fullUrl{action = 'edit'}
local editDisplay = message('edit-link-display')
local editLink = makeUrlLink(editUrl, editDisplay)
local historyUrl = docTitle:fullUrl{action = 'history'}
local historyDisplay = message('history-link-display')
local historyLink = makeUrlLink(historyUrl, historyDisplay)
ret = message('transcluded-from-blurb', {docLink})
.. ' '
.. makeToolbar(editLink, historyLink)
.. '<br />'
elseif env.subjectSpace == 828 then
-- /doc does not exist; ask to create it.
local createUrl = docTitle:fullUrl{action = 'edit', preload = message('module-preload')}
local createDisplay = message('create-link-display')
local createLink = makeUrlLink(createUrl, createDisplay)
ret = message('create-module-doc-blurb', {createLink})
.. '<br />'
end
return ret
end
function p.makeExperimentBlurb(args, env)
--[[
-- Renders the text "Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages."
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'sandbox-link-display' --> 'sandbox'
-- 'sandbox-edit-link-display' --> 'edit'
-- 'compare-link-display' --> 'diff'
-- 'module-sandbox-preload' --> 'Template:Documentation/preload-module-sandbox'
-- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox'
-- 'sandbox-create-link-display' --> 'create'
-- 'mirror-edit-summary' --> 'Create sandbox version of $1'
-- 'mirror-link-display' --> 'mirror'
-- 'mirror-link-preload' --> 'Template:Documentation/mirror'
-- 'sandbox-link-display' --> 'sandbox'
-- 'testcases-link-display' --> 'testcases'
-- 'testcases-edit-link-display'--> 'edit'
-- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox'
-- 'testcases-create-link-display' --> 'create'
-- 'testcases-link-display' --> 'testcases'
-- 'testcases-edit-link-display' --> 'edit'
-- 'module-testcases-preload' --> 'Template:Documentation/preload-module-testcases'
-- 'template-testcases-preload' --> 'Template:Documentation/preload-testcases'
-- 'experiment-blurb-module' --> 'Editors can experiment in this module's $1 and $2 pages.'
-- 'experiment-blurb-template' --> 'Editors can experiment in this template's $1 and $2 pages.'
--]]
local subjectSpace = env.subjectSpace
local templateTitle = env.templateTitle
local sandboxTitle = env.sandboxTitle
local testcasesTitle = env.testcasesTitle
local templatePage = templateTitle.prefixedText
if not subjectSpace or not templateTitle or not sandboxTitle or not testcasesTitle then
return nil
end
-- Make links.
local sandboxLinks, testcasesLinks
if sandboxTitle.exists then
local sandboxPage = sandboxTitle.prefixedText
local sandboxDisplay = message('sandbox-link-display')
local sandboxLink = makeWikilink(sandboxPage, sandboxDisplay)
local sandboxEditUrl = sandboxTitle:fullUrl{action = 'edit'}
local sandboxEditDisplay = message('sandbox-edit-link-display')
local sandboxEditLink = makeUrlLink(sandboxEditUrl, sandboxEditDisplay)
local compareUrl = env.compareUrl
local compareLink
if compareUrl then
local compareDisplay = message('compare-link-display')
compareLink = makeUrlLink(compareUrl, compareDisplay)
end
sandboxLinks = sandboxLink .. ' ' .. makeToolbar(sandboxEditLink, compareLink)
else
local sandboxPreload
if subjectSpace == 828 then
sandboxPreload = message('module-sandbox-preload')
else
sandboxPreload = message('template-sandbox-preload')
end
local sandboxCreateUrl = sandboxTitle:fullUrl{action = 'edit', preload = sandboxPreload}
local sandboxCreateDisplay = message('sandbox-create-link-display')
local sandboxCreateLink = makeUrlLink(sandboxCreateUrl, sandboxCreateDisplay)
local mirrorSummary = message('mirror-edit-summary', {makeWikilink(templatePage)})
local mirrorPreload = message('mirror-link-preload')
local mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = mirrorPreload, summary = mirrorSummary}
if subjectSpace == 828 then
mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = templateTitle.prefixedText, summary = mirrorSummary}
end
local mirrorDisplay = message('mirror-link-display')
local mirrorLink = makeUrlLink(mirrorUrl, mirrorDisplay)
sandboxLinks = message('sandbox-link-display') .. ' ' .. makeToolbar(sandboxCreateLink, mirrorLink)
end
if testcasesTitle.exists then
local testcasesPage = testcasesTitle.prefixedText
local testcasesDisplay = message('testcases-link-display')
local testcasesLink = makeWikilink(testcasesPage, testcasesDisplay)
local testcasesEditUrl = testcasesTitle:fullUrl{action = 'edit'}
local testcasesEditDisplay = message('testcases-edit-link-display')
local testcasesEditLink = makeUrlLink(testcasesEditUrl, testcasesEditDisplay)
-- for Modules, add testcases run link if exists
if testcasesTitle.contentModel == "Scribunto" and testcasesTitle.talkPageTitle and testcasesTitle.talkPageTitle.exists then
local testcasesRunLinkDisplay = message('testcases-run-link-display')
local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay)
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink, testcasesRunLink)
else
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink)
end
else
local testcasesPreload
if subjectSpace == 828 then
testcasesPreload = message('module-testcases-preload')
else
testcasesPreload = message('template-testcases-preload')
end
local testcasesCreateUrl = testcasesTitle:fullUrl{action = 'edit', preload = testcasesPreload}
local testcasesCreateDisplay = message('testcases-create-link-display')
local testcasesCreateLink = makeUrlLink(testcasesCreateUrl, testcasesCreateDisplay)
testcasesLinks = message('testcases-link-display') .. ' ' .. makeToolbar(testcasesCreateLink)
end
local messageName
if subjectSpace == 828 then
messageName = 'experiment-blurb-module'
else
messageName = 'experiment-blurb-template'
end
return message(messageName, {sandboxLinks, testcasesLinks})
end
function p.makeCategoriesBlurb(args, env)
--[[
-- Generates the text "Please add categories to the /doc subpage."
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'doc-link-display' --> '/doc'
-- 'add-categories-blurb' --> 'Please add categories to the $1 subpage.'
--]]
local docTitle = env.docTitle
if not docTitle then
return nil
end
local docPathLink = makeWikilink(docTitle.prefixedText, message('doc-link-display'))
return message('add-categories-blurb', {docPathLink})
end
function p.makeSubpagesBlurb(args, env)
--[[
-- Generates the "Subpages of this template" link.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'template-pagetype' --> 'template'
-- 'module-pagetype' --> 'module'
-- 'default-pagetype' --> 'page'
-- 'subpages-link-display' --> 'Subpages of this $1'
--]]
local subjectSpace = env.subjectSpace
local templateTitle = env.templateTitle
if not subjectSpace or not templateTitle then
return nil
end
local pagetype
if subjectSpace == 10 then
pagetype = message('template-pagetype')
elseif subjectSpace == 828 then
pagetype = message('module-pagetype')
else
pagetype = message('default-pagetype')
end
local subpagesLink = makeWikilink(
'Special:PrefixIndex/' .. templateTitle.prefixedText .. '/',
message('subpages-link-display', {pagetype})
)
return message('subpages-blurb', {subpagesLink})
end
----------------------------------------------------------------------------
-- Tracking categories
----------------------------------------------------------------------------
function p.addTrackingCategories(env)
--[[
-- Check if {{documentation}} is transcluded on a /doc or /testcases page.
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'display-strange-usage-category' --> true
-- 'doc-subpage' --> 'doc'
-- 'testcases-subpage' --> 'testcases'
-- 'strange-usage-category' --> 'Wikipedia pages with strange ((documentation)) usage'
--
-- /testcases pages in the module namespace are not categorised, as they may have
-- {{documentation}} transcluded automatically.
--]]
local title = env.title
local subjectSpace = env.subjectSpace
if not title or not subjectSpace then
return nil
end
local subpage = title.subpageText
local ret = ''
if message('display-strange-usage-category', nil, 'boolean')
and (
subpage == message('doc-subpage')
or subjectSpace ~= 828 and subpage == message('testcases-subpage')
)
then
ret = ret .. makeCategoryLink(message('strange-usage-category'))
end
return ret
end
return p
95ab9de543475e37250dc94558a5508a3c7c3dfc
Template:Small
10
45
81
2022-01-17T03:43:07Z
en>Explicit
0
[[Wikipedia:Templates for discussion/Log/2022 January 10#Template:Smaller]] closed as merge ([[WP:XFDC#4.0.12|XFDcloser]])
wikitext
text/x-wiki
<span style="font-size:85%;">{{{1}}}</span><includeonly>{{SAFESUBST:#if:{{{1|}}}||[[Category:Pages using small with an empty input parameter]]}}</includeonly><noinclude>
{{Documentation}}<!--Categories and interwikis go in the /doc sub-page.-->
</noinclude>
76d3535c2917cc3bfb1b032506073faa15e1a480
Template:Smaller
10
46
83
2022-01-18T10:48:21Z
en>Primefac
0
merge complete
wikitext
text/x-wiki
#REDIRECT [[Template:Small]]
{{r from merge}}
2209ecdc4a987eb3d73f648941a3daaed04cd5d5
Module:Documentation/config
828
63
117
2022-01-25T23:46:11Z
en>Ianblair23
0
link
Scribunto
text/plain
----------------------------------------------------------------------------------------------------
--
-- Configuration for Module:Documentation
--
-- Here you can set the values of the parameters and messages used in Module:Documentation to
-- localise it to your wiki and your language. Unless specified otherwise, values given here
-- should be string values.
----------------------------------------------------------------------------------------------------
local cfg = {} -- Do not edit this line.
----------------------------------------------------------------------------------------------------
-- Protection template configuration
----------------------------------------------------------------------------------------------------
-- cfg['protection-reason-edit']
-- The protection reason for edit-protected templates to pass to
-- [[Module:Protection banner]].
cfg['protection-reason-edit'] = 'template'
--[[
----------------------------------------------------------------------------------------------------
-- Sandbox notice configuration
--
-- On sandbox pages the module can display a template notifying users that the current page is a
-- sandbox, and the location of test cases pages, etc. The module decides whether the page is a
-- sandbox or not based on the value of cfg['sandbox-subpage']. The following settings configure the
-- messages that the notices contains.
----------------------------------------------------------------------------------------------------
--]]
-- cfg['sandbox-notice-image']
-- The image displayed in the sandbox notice.
cfg['sandbox-notice-image'] = '[[File:Sandbox.svg|50px|alt=|link=]]'
--[[
-- cfg['sandbox-notice-pagetype-template']
-- cfg['sandbox-notice-pagetype-module']
-- cfg['sandbox-notice-pagetype-other']
-- The page type of the sandbox page. The message that is displayed depends on the current subject
-- namespace. This message is used in either cfg['sandbox-notice-blurb'] or
-- cfg['sandbox-notice-diff-blurb'].
--]]
cfg['sandbox-notice-pagetype-template'] = '[[Wikipedia:Template test cases|template sandbox]] page'
cfg['sandbox-notice-pagetype-module'] = '[[Wikipedia:Template test cases|module sandbox]] page'
cfg['sandbox-notice-pagetype-other'] = 'sandbox page'
--[[
-- cfg['sandbox-notice-blurb']
-- cfg['sandbox-notice-diff-blurb']
-- cfg['sandbox-notice-diff-display']
-- Either cfg['sandbox-notice-blurb'] or cfg['sandbox-notice-diff-blurb'] is the opening sentence
-- of the sandbox notice. The latter has a diff link, but the former does not. $1 is the page
-- type, which is either cfg['sandbox-notice-pagetype-template'],
-- cfg['sandbox-notice-pagetype-module'] or cfg['sandbox-notice-pagetype-other'] depending what
-- namespace we are in. $2 is a link to the main template page, and $3 is a diff link between
-- the sandbox and the main template. The display value of the diff link is set by
-- cfg['sandbox-notice-compare-link-display'].
--]]
cfg['sandbox-notice-blurb'] = 'This is the $1 for $2.'
cfg['sandbox-notice-diff-blurb'] = 'This is the $1 for $2 ($3).'
cfg['sandbox-notice-compare-link-display'] = 'diff'
--[[
-- cfg['sandbox-notice-testcases-blurb']
-- cfg['sandbox-notice-testcases-link-display']
-- cfg['sandbox-notice-testcases-run-blurb']
-- cfg['sandbox-notice-testcases-run-link-display']
-- cfg['sandbox-notice-testcases-blurb'] is a sentence notifying the user that there is a test cases page
-- corresponding to this sandbox that they can edit. $1 is a link to the test cases page.
-- cfg['sandbox-notice-testcases-link-display'] is the display value for that link.
-- cfg['sandbox-notice-testcases-run-blurb'] is a sentence notifying the user that there is a test cases page
-- corresponding to this sandbox that they can edit, along with a link to run it. $1 is a link to the test
-- cases page, and $2 is a link to the page to run it.
-- cfg['sandbox-notice-testcases-run-link-display'] is the display value for the link to run the test
-- cases.
--]]
cfg['sandbox-notice-testcases-blurb'] = 'See also the companion subpage for $1.'
cfg['sandbox-notice-testcases-link-display'] = 'test cases'
cfg['sandbox-notice-testcases-run-blurb'] = 'See also the companion subpage for $1 ($2).'
cfg['sandbox-notice-testcases-run-link-display'] = 'run'
-- cfg['sandbox-category']
-- A category to add to all template sandboxes.
cfg['sandbox-category'] = 'Template sandboxes'
----------------------------------------------------------------------------------------------------
-- Start box configuration
----------------------------------------------------------------------------------------------------
-- cfg['documentation-icon-wikitext']
-- The wikitext for the icon shown at the top of the template.
cfg['documentation-icon-wikitext'] = '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]'
-- cfg['template-namespace-heading']
-- The heading shown in the template namespace.
cfg['template-namespace-heading'] = 'Template documentation'
-- cfg['module-namespace-heading']
-- The heading shown in the module namespace.
cfg['module-namespace-heading'] = 'Module documentation'
-- cfg['file-namespace-heading']
-- The heading shown in the file namespace.
cfg['file-namespace-heading'] = 'Summary'
-- cfg['other-namespaces-heading']
-- The heading shown in other namespaces.
cfg['other-namespaces-heading'] = 'Documentation'
-- cfg['view-link-display']
-- The text to display for "view" links.
cfg['view-link-display'] = 'view'
-- cfg['edit-link-display']
-- The text to display for "edit" links.
cfg['edit-link-display'] = 'edit'
-- cfg['history-link-display']
-- The text to display for "history" links.
cfg['history-link-display'] = 'history'
-- cfg['purge-link-display']
-- The text to display for "purge" links.
cfg['purge-link-display'] = 'purge'
-- cfg['create-link-display']
-- The text to display for "create" links.
cfg['create-link-display'] = 'create'
----------------------------------------------------------------------------------------------------
-- Link box (end box) configuration
----------------------------------------------------------------------------------------------------
-- cfg['transcluded-from-blurb']
-- Notice displayed when the docs are transcluded from another page. $1 is a wikilink to that page.
cfg['transcluded-from-blurb'] = 'The above [[Wikipedia:Template documentation|documentation]] is [[Help:Transclusion|transcluded]] from $1.'
--[[
-- cfg['create-module-doc-blurb']
-- Notice displayed in the module namespace when the documentation subpage does not exist.
-- $1 is a link to create the documentation page with the preload cfg['module-preload'] and the
-- display cfg['create-link-display'].
--]]
cfg['create-module-doc-blurb'] = 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].'
----------------------------------------------------------------------------------------------------
-- Experiment blurb configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['experiment-blurb-template']
-- cfg['experiment-blurb-module']
-- The experiment blurb is the text inviting editors to experiment in sandbox and test cases pages.
-- It is only shown in the template and module namespaces. With the default English settings, it
-- might look like this:
--
-- Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages.
--
-- In this example, "sandbox", "edit", "diff", "testcases", and "edit" would all be links.
--
-- There are two versions, cfg['experiment-blurb-template'] and cfg['experiment-blurb-module'], depending
-- on what namespace we are in.
--
-- Parameters:
--
-- $1 is a link to the sandbox page. If the sandbox exists, it is in the following format:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-edit-link-display'] | cfg['compare-link-display'])
--
-- If the sandbox doesn't exist, it is in the format:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-create-link-display'] | cfg['mirror-link-display'])
--
-- The link for cfg['sandbox-create-link-display'] link preloads the page with cfg['template-sandbox-preload']
-- or cfg['module-sandbox-preload'], depending on the current namespace. The link for cfg['mirror-link-display']
-- loads a default edit summary of cfg['mirror-edit-summary'].
--
-- $2 is a link to the test cases page. If the test cases page exists, it is in the following format:
--
-- cfg['testcases-link-display'] (cfg['testcases-edit-link-display'] | cfg['testcases-run-link-display'])
--
-- If the test cases page doesn't exist, it is in the format:
--
-- cfg['testcases-link-display'] (cfg['testcases-create-link-display'])
--
-- If the test cases page doesn't exist, the link for cfg['testcases-create-link-display'] preloads the
-- page with cfg['template-testcases-preload'] or cfg['module-testcases-preload'], depending on the current
-- namespace.
--]]
cfg['experiment-blurb-template'] = "Editors can experiment in this template's $1 and $2 pages."
cfg['experiment-blurb-module'] = "Editors can experiment in this module's $1 and $2 pages."
----------------------------------------------------------------------------------------------------
-- Sandbox link configuration
----------------------------------------------------------------------------------------------------
-- cfg['sandbox-subpage']
-- The name of the template subpage typically used for sandboxes.
cfg['sandbox-subpage'] = 'sandbox'
-- cfg['template-sandbox-preload']
-- Preload file for template sandbox pages.
cfg['template-sandbox-preload'] = 'Template:Documentation/preload-sandbox'
-- cfg['module-sandbox-preload']
-- Preload file for Lua module sandbox pages.
cfg['module-sandbox-preload'] = 'Template:Documentation/preload-module-sandbox'
-- cfg['sandbox-link-display']
-- The text to display for "sandbox" links.
cfg['sandbox-link-display'] = 'sandbox'
-- cfg['sandbox-edit-link-display']
-- The text to display for sandbox "edit" links.
cfg['sandbox-edit-link-display'] = 'edit'
-- cfg['sandbox-create-link-display']
-- The text to display for sandbox "create" links.
cfg['sandbox-create-link-display'] = 'create'
-- cfg['compare-link-display']
-- The text to display for "compare" links.
cfg['compare-link-display'] = 'diff'
-- cfg['mirror-edit-summary']
-- The default edit summary to use when a user clicks the "mirror" link. $1 is a wikilink to the
-- template page.
cfg['mirror-edit-summary'] = 'Create sandbox version of $1'
-- cfg['mirror-link-display']
-- The text to display for "mirror" links.
cfg['mirror-link-display'] = 'mirror'
-- cfg['mirror-link-preload']
-- The page to preload when a user clicks the "mirror" link.
cfg['mirror-link-preload'] = 'Template:Documentation/mirror'
----------------------------------------------------------------------------------------------------
-- Test cases link configuration
----------------------------------------------------------------------------------------------------
-- cfg['testcases-subpage']
-- The name of the template subpage typically used for test cases.
cfg['testcases-subpage'] = 'testcases'
-- cfg['template-testcases-preload']
-- Preload file for template test cases pages.
cfg['template-testcases-preload'] = 'Template:Documentation/preload-testcases'
-- cfg['module-testcases-preload']
-- Preload file for Lua module test cases pages.
cfg['module-testcases-preload'] = 'Template:Documentation/preload-module-testcases'
-- cfg['testcases-link-display']
-- The text to display for "testcases" links.
cfg['testcases-link-display'] = 'testcases'
-- cfg['testcases-edit-link-display']
-- The text to display for test cases "edit" links.
cfg['testcases-edit-link-display'] = 'edit'
-- cfg['testcases-run-link-display']
-- The text to display for test cases "run" links.
cfg['testcases-run-link-display'] = 'run'
-- cfg['testcases-create-link-display']
-- The text to display for test cases "create" links.
cfg['testcases-create-link-display'] = 'create'
----------------------------------------------------------------------------------------------------
-- Add categories blurb configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['add-categories-blurb']
-- Text to direct users to add categories to the /doc subpage. Not used if the "content" or
-- "docname fed" arguments are set, as then it is not clear where to add the categories. $1 is a
-- link to the /doc subpage with a display value of cfg['doc-link-display'].
--]]
cfg['add-categories-blurb'] = 'Add categories to the $1 subpage.'
-- cfg['doc-link-display']
-- The text to display when linking to the /doc subpage.
cfg['doc-link-display'] = '/doc'
----------------------------------------------------------------------------------------------------
-- Subpages link configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['subpages-blurb']
-- The "Subpages of this template" blurb. $1 is a link to the main template's subpages with a
-- display value of cfg['subpages-link-display']. In the English version this blurb is simply
-- the link followed by a period, and the link display provides the actual text.
--]]
cfg['subpages-blurb'] = '$1.'
--[[
-- cfg['subpages-link-display']
-- The text to display for the "subpages of this page" link. $1 is cfg['template-pagetype'],
-- cfg['module-pagetype'] or cfg['default-pagetype'], depending on whether the current page is in
-- the template namespace, the module namespace, or another namespace.
--]]
cfg['subpages-link-display'] = 'Subpages of this $1'
-- cfg['template-pagetype']
-- The pagetype to display for template pages.
cfg['template-pagetype'] = 'template'
-- cfg['module-pagetype']
-- The pagetype to display for Lua module pages.
cfg['module-pagetype'] = 'module'
-- cfg['default-pagetype']
-- The pagetype to display for pages other than templates or Lua modules.
cfg['default-pagetype'] = 'page'
----------------------------------------------------------------------------------------------------
-- Doc link configuration
----------------------------------------------------------------------------------------------------
-- cfg['doc-subpage']
-- The name of the subpage typically used for documentation pages.
cfg['doc-subpage'] = 'doc'
-- cfg['docpage-preload']
-- Preload file for template documentation pages in all namespaces.
cfg['docpage-preload'] = 'Template:Documentation/preload'
-- cfg['module-preload']
-- Preload file for Lua module documentation pages.
cfg['module-preload'] = 'Template:Documentation/preload-module-doc'
----------------------------------------------------------------------------------------------------
-- HTML and CSS configuration
----------------------------------------------------------------------------------------------------
-- cfg['templatestyles']
-- The name of the TemplateStyles page where CSS is kept.
-- Sandbox CSS will be at Module:Documentation/sandbox/styles.css when needed.
cfg['templatestyles'] = 'Module:Documentation/styles.css'
-- cfg['container']
-- Class which can be used to set flex or grid CSS on the
-- two child divs documentation and documentation-metadata
cfg['container'] = 'documentation-container'
-- cfg['main-div-classes']
-- Classes added to the main HTML "div" tag.
cfg['main-div-classes'] = 'documentation'
-- cfg['main-div-heading-class']
-- Class for the main heading for templates and modules and assoc. talk spaces
cfg['main-div-heading-class'] = 'documentation-heading'
-- cfg['start-box-class']
-- Class for the start box
cfg['start-box-class'] = 'documentation-startbox'
-- cfg['start-box-link-classes']
-- Classes used for the [view][edit][history] or [create] links in the start box.
-- mw-editsection-like is per [[Wikipedia:Village pump (technical)/Archive 117]]
cfg['start-box-link-classes'] = 'mw-editsection-like plainlinks'
-- cfg['end-box-class']
-- Class for the end box.
cfg['end-box-class'] = 'documentation-metadata'
-- cfg['end-box-plainlinks']
-- Plainlinks
cfg['end-box-plainlinks'] = 'plainlinks'
-- cfg['toolbar-class']
-- Class added for toolbar links.
cfg['toolbar-class'] = 'documentation-toolbar'
-- cfg['clear']
-- Just used to clear things.
cfg['clear'] = 'documentation-clear'
----------------------------------------------------------------------------------------------------
-- Tracking category configuration
----------------------------------------------------------------------------------------------------
-- cfg['display-strange-usage-category']
-- Set to true to enable output of cfg['strange-usage-category'] if the module is used on a /doc subpage
-- or a /testcases subpage. This should be a boolean value (either true or false).
cfg['display-strange-usage-category'] = true
-- cfg['strange-usage-category']
-- Category to output if cfg['display-strange-usage-category'] is set to true and the module is used on a
-- /doc subpage or a /testcases subpage.
cfg['strange-usage-category'] = 'Wikipedia pages with strange ((documentation)) usage'
--[[
----------------------------------------------------------------------------------------------------
-- End configuration
--
-- Don't edit anything below this line.
----------------------------------------------------------------------------------------------------
--]]
return cfg
71b68ed73088f1a59d61acf06bbee9fde6677f03
Module:TableTools
828
84
159
2022-01-31T13:08:18Z
en>MSGJ
0
updates/fixes requested by [[User:Uzume]]
Scribunto
text/plain
------------------------------------------------------------------------------------
-- TableTools --
-- --
-- This module includes a number of functions for dealing with Lua tables. --
-- It is a meta-module, meant to be called from other Lua modules, and should not --
-- be called directly from #invoke. --
------------------------------------------------------------------------------------
local libraryUtil = require('libraryUtil')
local p = {}
-- Define often-used variables and functions.
local floor = math.floor
local infinity = math.huge
local checkType = libraryUtil.checkType
local checkTypeMulti = libraryUtil.checkTypeMulti
------------------------------------------------------------------------------------
-- isPositiveInteger
--
-- This function returns true if the given value is a positive integer, and false
-- if not. Although it doesn't operate on tables, it is included here as it is
-- useful for determining whether a given table key is in the array part or the
-- hash part of a table.
------------------------------------------------------------------------------------
function p.isPositiveInteger(v)
return type(v) == 'number' and v >= 1 and floor(v) == v and v < infinity
end
------------------------------------------------------------------------------------
-- isNan
--
-- This function returns true if the given number is a NaN value, and false if
-- not. Although it doesn't operate on tables, it is included here as it is useful
-- for determining whether a value can be a valid table key. Lua will generate an
-- error if a NaN is used as a table key.
------------------------------------------------------------------------------------
function p.isNan(v)
return type(v) == 'number' and v ~= v
end
------------------------------------------------------------------------------------
-- shallowClone
--
-- This returns a clone of a table. The value returned is a new table, but all
-- subtables and functions are shared. Metamethods are respected, but the returned
-- table will have no metatable of its own.
------------------------------------------------------------------------------------
function p.shallowClone(t)
checkType('shallowClone', 1, t, 'table')
local ret = {}
for k, v in pairs(t) do
ret[k] = v
end
return ret
end
------------------------------------------------------------------------------------
-- removeDuplicates
--
-- This removes duplicate values from an array. Non-positive-integer keys are
-- ignored. The earliest value is kept, and all subsequent duplicate values are
-- removed, but otherwise the array order is unchanged.
------------------------------------------------------------------------------------
function p.removeDuplicates(arr)
checkType('removeDuplicates', 1, arr, 'table')
local isNan = p.isNan
local ret, exists = {}, {}
for _, v in ipairs(arr) do
if isNan(v) then
-- NaNs can't be table keys, and they are also unique, so we don't need to check existence.
ret[#ret + 1] = v
else
if not exists[v] then
ret[#ret + 1] = v
exists[v] = true
end
end
end
return ret
end
------------------------------------------------------------------------------------
-- numKeys
--
-- This takes a table and returns an array containing the numbers of any numerical
-- keys that have non-nil values, sorted in numerical order.
------------------------------------------------------------------------------------
function p.numKeys(t)
checkType('numKeys', 1, t, 'table')
local isPositiveInteger = p.isPositiveInteger
local nums = {}
for k in pairs(t) do
if isPositiveInteger(k) then
nums[#nums + 1] = k
end
end
table.sort(nums)
return nums
end
------------------------------------------------------------------------------------
-- affixNums
--
-- This takes a table and returns an array containing the numbers of keys with the
-- specified prefix and suffix. For example, for the table
-- {a1 = 'foo', a3 = 'bar', a6 = 'baz'} and the prefix "a", affixNums will return
-- {1, 3, 6}.
------------------------------------------------------------------------------------
function p.affixNums(t, prefix, suffix)
checkType('affixNums', 1, t, 'table')
checkType('affixNums', 2, prefix, 'string', true)
checkType('affixNums', 3, suffix, 'string', true)
local function cleanPattern(s)
-- Cleans a pattern so that the magic characters ()%.[]*+-?^$ are interpreted literally.
return s:gsub('([%(%)%%%.%[%]%*%+%-%?%^%$])', '%%%1')
end
prefix = prefix or ''
suffix = suffix or ''
prefix = cleanPattern(prefix)
suffix = cleanPattern(suffix)
local pattern = '^' .. prefix .. '([1-9]%d*)' .. suffix .. '$'
local nums = {}
for k in pairs(t) do
if type(k) == 'string' then
local num = mw.ustring.match(k, pattern)
if num then
nums[#nums + 1] = tonumber(num)
end
end
end
table.sort(nums)
return nums
end
------------------------------------------------------------------------------------
-- numData
--
-- Given a table with keys like {"foo1", "bar1", "foo2", "baz2"}, returns a table
-- of subtables in the format
-- {[1] = {foo = 'text', bar = 'text'}, [2] = {foo = 'text', baz = 'text'}}.
-- Keys that don't end with an integer are stored in a subtable named "other". The
-- compress option compresses the table so that it can be iterated over with
-- ipairs.
------------------------------------------------------------------------------------
function p.numData(t, compress)
checkType('numData', 1, t, 'table')
checkType('numData', 2, compress, 'boolean', true)
local ret = {}
for k, v in pairs(t) do
local prefix, num = mw.ustring.match(tostring(k), '^([^0-9]*)([1-9][0-9]*)$')
if num then
num = tonumber(num)
local subtable = ret[num] or {}
if prefix == '' then
-- Positional parameters match the blank string; put them at the start of the subtable instead.
prefix = 1
end
subtable[prefix] = v
ret[num] = subtable
else
local subtable = ret.other or {}
subtable[k] = v
ret.other = subtable
end
end
if compress then
local other = ret.other
ret = p.compressSparseArray(ret)
ret.other = other
end
return ret
end
------------------------------------------------------------------------------------
-- compressSparseArray
--
-- This takes an array with one or more nil values, and removes the nil values
-- while preserving the order, so that the array can be safely traversed with
-- ipairs.
------------------------------------------------------------------------------------
function p.compressSparseArray(t)
checkType('compressSparseArray', 1, t, 'table')
local ret = {}
local nums = p.numKeys(t)
for _, num in ipairs(nums) do
ret[#ret + 1] = t[num]
end
return ret
end
------------------------------------------------------------------------------------
-- sparseIpairs
--
-- This is an iterator for sparse arrays. It can be used like ipairs, but can
-- handle nil values.
------------------------------------------------------------------------------------
function p.sparseIpairs(t)
checkType('sparseIpairs', 1, t, 'table')
local nums = p.numKeys(t)
local i = 0
local lim = #nums
return function ()
i = i + 1
if i <= lim then
local key = nums[i]
return key, t[key]
else
return nil, nil
end
end
end
------------------------------------------------------------------------------------
-- size
--
-- This returns the size of a key/value pair table. It will also work on arrays,
-- but for arrays it is more efficient to use the # operator.
------------------------------------------------------------------------------------
function p.size(t)
checkType('size', 1, t, 'table')
local i = 0
for _ in pairs(t) do
i = i + 1
end
return i
end
local function defaultKeySort(item1, item2)
-- "number" < "string", so numbers will be sorted before strings.
local type1, type2 = type(item1), type(item2)
if type1 ~= type2 then
return type1 < type2
elseif type1 == 'table' or type1 == 'boolean' or type1 == 'function' then
return tostring(item1) < tostring(item2)
else
return item1 < item2
end
end
------------------------------------------------------------------------------------
-- keysToList
--
-- Returns an array of the keys in a table, sorted using either a default
-- comparison function or a custom keySort function.
------------------------------------------------------------------------------------
function p.keysToList(t, keySort, checked)
if not checked then
checkType('keysToList', 1, t, 'table')
checkTypeMulti('keysToList', 2, keySort, {'function', 'boolean', 'nil'})
end
local arr = {}
local index = 1
for k in pairs(t) do
arr[index] = k
index = index + 1
end
if keySort ~= false then
keySort = type(keySort) == 'function' and keySort or defaultKeySort
table.sort(arr, keySort)
end
return arr
end
------------------------------------------------------------------------------------
-- sortedPairs
--
-- Iterates through a table, with the keys sorted using the keysToList function.
-- If there are only numerical keys, sparseIpairs is probably more efficient.
------------------------------------------------------------------------------------
function p.sortedPairs(t, keySort)
checkType('sortedPairs', 1, t, 'table')
checkType('sortedPairs', 2, keySort, 'function', true)
local arr = p.keysToList(t, keySort, true)
local i = 0
return function ()
i = i + 1
local key = arr[i]
if key ~= nil then
return key, t[key]
else
return nil, nil
end
end
end
------------------------------------------------------------------------------------
-- isArray
--
-- Returns true if the given value is a table and all keys are consecutive
-- integers starting at 1.
------------------------------------------------------------------------------------
function p.isArray(v)
if type(v) ~= 'table' then
return false
end
local i = 0
for _ in pairs(v) do
i = i + 1
if v[i] == nil then
return false
end
end
return true
end
------------------------------------------------------------------------------------
-- isArrayLike
--
-- Returns true if the given value is iterable and all keys are consecutive
-- integers starting at 1.
------------------------------------------------------------------------------------
function p.isArrayLike(v)
if not pcall(pairs, v) then
return false
end
local i = 0
for _ in pairs(v) do
i = i + 1
if v[i] == nil then
return false
end
end
return true
end
------------------------------------------------------------------------------------
-- invert
--
-- Transposes the keys and values in an array. For example, {"a", "b", "c"} ->
-- {a = 1, b = 2, c = 3}. Duplicates are not supported (result values refer to
-- the index of the last duplicate) and NaN values are ignored.
------------------------------------------------------------------------------------
function p.invert(arr)
checkType("invert", 1, arr, "table")
local isNan = p.isNan
local map = {}
for i, v in ipairs(arr) do
if not isNan(v) then
map[v] = i
end
end
return map
end
------------------------------------------------------------------------------------
-- listToSet
--
-- Creates a set from the array part of the table. Indexing the set by any of the
-- values of the array returns true. For example, {"a", "b", "c"} ->
-- {a = true, b = true, c = true}. NaN values are ignored as Lua considers them
-- never equal to any value (including other NaNs or even themselves).
------------------------------------------------------------------------------------
function p.listToSet(arr)
checkType("listToSet", 1, arr, "table")
local isNan = p.isNan
local set = {}
for _, v in ipairs(arr) do
if not isNan(v) then
set[v] = true
end
end
return set
end
------------------------------------------------------------------------------------
-- deepCopy
--
-- Recursive deep copy function. Preserves identities of subtables.
------------------------------------------------------------------------------------
local function _deepCopy(orig, includeMetatable, already_seen)
-- Stores copies of tables indexed by the original table.
already_seen = already_seen or {}
local copy = already_seen[orig]
if copy ~= nil then
return copy
end
if type(orig) == 'table' then
copy = {}
for orig_key, orig_value in pairs(orig) do
copy[_deepCopy(orig_key, includeMetatable, already_seen)] = _deepCopy(orig_value, includeMetatable, already_seen)
end
already_seen[orig] = copy
if includeMetatable then
local mt = getmetatable(orig)
if mt ~= nil then
local mt_copy = _deepCopy(mt, includeMetatable, already_seen)
setmetatable(copy, mt_copy)
already_seen[mt] = mt_copy
end
end
else -- number, string, boolean, etc
copy = orig
end
return copy
end
function p.deepCopy(orig, noMetatable, already_seen)
checkType("deepCopy", 3, already_seen, "table", true)
return _deepCopy(orig, not noMetatable, already_seen)
end
------------------------------------------------------------------------------------
-- sparseConcat
--
-- Concatenates all values in the table that are indexed by a number, in order.
-- sparseConcat{a, nil, c, d} => "acd"
-- sparseConcat{nil, b, c, d} => "bcd"
------------------------------------------------------------------------------------
function p.sparseConcat(t, sep, i, j)
local arr = {}
local arr_i = 0
for _, v in p.sparseIpairs(t) do
arr_i = arr_i + 1
arr[arr_i] = v
end
return table.concat(arr, sep, i, j)
end
------------------------------------------------------------------------------------
-- length
--
-- Finds the length of an array, or of a quasi-array with keys such as "data1",
-- "data2", etc., using an exponential search algorithm. It is similar to the
-- operator #, but may return a different value when there are gaps in the array
-- portion of the table. Intended to be used on data loaded with mw.loadData. For
-- other tables, use #.
-- Note: #frame.args in frame object always be set to 0, regardless of the number
-- of unnamed template parameters, so use this function for frame.args.
------------------------------------------------------------------------------------
function p.length(t, prefix)
-- requiring module inline so that [[Module:Exponential search]] which is
-- only needed by this one function doesn't get millions of transclusions
local expSearch = require("Module:Exponential search")
checkType('length', 1, t, 'table')
checkType('length', 2, prefix, 'string', true)
return expSearch(function (i)
local key
if prefix then
key = prefix .. tostring(i)
else
key = i
end
return t[key] ~= nil
end) or 0
end
------------------------------------------------------------------------------------
-- inArray
--
-- Returns true if valueToFind is a member of the array, and false otherwise.
------------------------------------------------------------------------------------
function p.inArray(arr, valueToFind)
checkType("inArray", 1, arr, "table")
-- if valueToFind is nil, error?
for _, v in ipairs(arr) do
if v == valueToFind then
return true
end
end
return false
end
return p
085e7094ac84eb0132ee65822cf3f69cd8ba3d81
Module:Protection banner/config
828
80
151
2022-02-03T23:49:55Z
en>Andrybak
0
add categorization into [[:Category:Wikipedia extended-confirmed-protected modules]] per [[Special:Diff/1069761256|request]]
Scribunto
text/plain
-- This module provides configuration data for [[Module:Protection banner]].
return {
--------------------------------------------------------------------------------
--
-- BANNER DATA
--
--------------------------------------------------------------------------------
--[[
-- Banner data consists of six fields:
-- * text - the main protection text that appears at the top of protection
-- banners.
-- * explanation - the text that appears below the main protection text, used
-- to explain the details of the protection.
-- * tooltip - the tooltip text you see when you move the mouse over a small
-- padlock icon.
-- * link - the page that the small padlock icon links to.
-- * alt - the alt text for the small padlock icon. This is also used as tooltip
-- text for the large protection banners.
-- * image - the padlock image used in both protection banners and small padlock
-- icons.
--
-- The module checks in three separate tables to find a value for each field.
-- First it checks the banners table, which has values specific to the reason
-- for the page being protected. Then the module checks the defaultBanners
-- table, which has values specific to each protection level. Finally, the
-- module checks the masterBanner table, which holds data for protection
-- templates to use if no data has been found in the previous two tables.
--
-- The values in the banner data can take parameters. These are specified
-- using ${TEXTLIKETHIS} (a dollar sign preceding a parameter name
-- enclosed in curly braces).
--
-- Available parameters:
--
-- ${CURRENTVERSION} - a link to the page history or the move log, with the
-- display message "current-version-edit-display" or
-- "current-version-move-display".
--
-- ${EDITREQUEST} - a link to create an edit request for the current page.
--
-- ${EXPLANATIONBLURB} - an explanation blurb, e.g. "Please discuss any changes
-- on the talk page; you may submit a request to ask an administrator to make
-- an edit if it is minor or supported by consensus."
--
-- ${IMAGELINK} - a link to set the image to, depending on the protection
-- action and protection level.
--
-- ${INTROBLURB} - the PROTECTIONBLURB parameter, plus the expiry if an expiry
-- is set. E.g. "Editing of this page by new or unregistered users is currently
-- disabled until dd Month YYYY."
--
-- ${INTROFRAGMENT} - the same as ${INTROBLURB}, but without final punctuation
-- so that it can be used in run-on sentences.
--
-- ${PAGETYPE} - the type of the page, e.g. "article" or "template".
-- Defined in the cfg.pagetypes table.
--
-- ${PROTECTIONBLURB} - a blurb explaining the protection level of the page, e.g.
-- "Editing of this page by new or unregistered users is currently disabled"
--
-- ${PROTECTIONDATE} - the protection date, if it has been supplied to the
-- template.
--
-- ${PROTECTIONLEVEL} - the protection level, e.g. "fully protected" or
-- "semi-protected".
--
-- ${PROTECTIONLOG} - a link to the protection log or the pending changes log,
-- depending on the protection action.
--
-- ${TALKPAGE} - a link to the talk page. If a section is specified, links
-- straight to that talk page section.
--
-- ${TOOLTIPBLURB} - uses the PAGETYPE, PROTECTIONTYPE and EXPIRY parameters to
-- create a blurb like "This template is semi-protected", or "This article is
-- move-protected until DD Month YYYY".
--
-- ${VANDAL} - links for the specified username (or the root page name)
-- using Module:Vandal-m.
--
-- Functions
--
-- For advanced users, it is possible to use Lua functions instead of strings
-- in the banner config tables. Using functions gives flexibility that is not
-- possible just by using parameters. Functions take two arguments, the
-- protection object and the template arguments, and they must output a string.
--
-- For example:
--
-- text = function (protectionObj, args)
-- if protectionObj.level == 'autoconfirmed' then
-- return 'foo'
-- else
-- return 'bar'
-- end
-- end
--
-- Some protection object properties and methods that may be useful:
-- protectionObj.action - the protection action
-- protectionObj.level - the protection level
-- protectionObj.reason - the protection reason
-- protectionObj.expiry - the expiry. Nil if unset, the string "indef" if set
-- to indefinite, and the protection time in unix time if temporary.
-- protectionObj.protectionDate - the protection date in unix time, or nil if
-- unspecified.
-- protectionObj.bannerConfig - the banner config found by the module. Beware
-- of editing the config field used by the function, as it could create an
-- infinite loop.
-- protectionObj:isProtected - returns a boolean showing whether the page is
-- protected.
-- protectionObj:isTemporary - returns a boolean showing whether the expiry is
-- temporary.
-- protectionObj:isIncorrect - returns a boolean showing whether the protection
-- template is incorrect.
--]]
-- The master banner data, used if no values have been found in banners or
-- defaultBanners.
masterBanner = {
text = '${INTROBLURB}',
explanation = '${EXPLANATIONBLURB}',
tooltip = '${TOOLTIPBLURB}',
link = '${IMAGELINK}',
alt = 'Page ${PROTECTIONLEVEL}'
},
-- The default banner data. This holds banner data for different protection
-- levels.
-- *required* - this table needs edit, move, autoreview and upload subtables.
defaultBanners = {
edit = {},
move = {},
autoreview = {
default = {
alt = 'Page protected with pending changes',
tooltip = 'All edits by unregistered and new users are subject to review prior to becoming visible to unregistered users',
image = 'Pending-protection-shackle.svg'
}
},
upload = {}
},
-- The banner data. This holds banner data for different protection reasons.
-- In fact, the reasons specified in this table control which reasons are
-- valid inputs to the first positional parameter.
--
-- There is also a non-standard "description" field that can be used for items
-- in this table. This is a description of the protection reason for use in the
-- module documentation.
--
-- *required* - this table needs edit, move, autoreview and upload subtables.
banners = {
edit = {
blp = {
description = 'For pages protected to promote compliance with the'
.. ' [[Wikipedia:Biographies of living persons'
.. '|biographies of living persons]] policy',
text = '${INTROFRAGMENT} to promote compliance with'
.. ' [[Wikipedia:Biographies of living persons'
.. "|Wikipedia's policy on the biographies"
.. ' of living people]].',
tooltip = '${TOOLTIPFRAGMENT} to promote compliance with the policy on'
.. ' biographies of living persons',
},
dmca = {
description = 'For pages protected by the Wikimedia Foundation'
.. ' due to [[Digital Millennium Copyright Act]] takedown requests',
explanation = function (protectionObj, args)
local ret = 'Pursuant to a rights owner notice under the Digital'
.. ' Millennium Copyright Act (DMCA) regarding some content'
.. ' in this article, the Wikimedia Foundation acted under'
.. ' applicable law and took down and restricted the content'
.. ' in question.'
if args.notice then
ret = ret .. ' A copy of the received notice can be found here: '
.. args.notice .. '.'
end
ret = ret .. ' For more information, including websites discussing'
.. ' how to file a counter-notice, please see'
.. " [[Wikipedia:Office actions]] and the article's ${TALKPAGE}."
.. "'''Do not remove this template from the article until the"
.. " restrictions are withdrawn'''."
return ret
end,
image = 'Office-protection-shackle.svg',
},
dispute = {
description = 'For pages protected due to editing disputes',
text = function (protectionObj, args)
-- Find the value of "disputes".
local display = 'disputes'
local disputes
if args.section then
disputes = string.format(
'[[%s:%s#%s|%s]]',
mw.site.namespaces[protectionObj.title.namespace].talk.name,
protectionObj.title.text,
args.section,
display
)
else
disputes = display
end
-- Make the blurb, depending on the expiry.
local msg
if type(protectionObj.expiry) == 'number' then
msg = '${INTROFRAGMENT} or until editing %s have been resolved.'
else
msg = '${INTROFRAGMENT} until editing %s have been resolved.'
end
return string.format(msg, disputes)
end,
explanation = "This protection is '''not''' an endorsement of the"
.. ' ${CURRENTVERSION}. ${EXPLANATIONBLURB}',
tooltip = '${TOOLTIPFRAGMENT} due to editing disputes',
},
ecp = {
description = 'For articles in topic areas authorized by'
.. ' [[Wikipedia:Arbitration Committee|ArbCom]] or'
.. ' meets the criteria for community use',
tooltip = 'This ${PAGETYPE} is extended-confirmed protected',
alt = 'Extended-protected ${PAGETYPE}',
},
mainpage = {
description = 'For pages protected for being displayed on the [[Main Page]]',
text = 'This file is currently'
.. ' [[Wikipedia:This page is protected|protected]] from'
.. ' editing because it is currently or will soon be displayed'
.. ' on the [[Main Page]].',
explanation = 'Images on the Main Page are protected due to their high'
.. ' visibility. Please discuss any necessary changes on the ${TALKPAGE}.'
.. '<br /><span style="font-size:90%;">'
.. "'''Administrators:''' Once this image is definitely off the Main Page,"
.. ' please unprotect this file, or reduce to semi-protection,'
.. ' as appropriate.</span>',
},
office = {
description = 'For pages protected by the Wikimedia Foundation',
text = function (protectionObj, args)
local ret = 'This ${PAGETYPE} is currently under the'
.. ' scrutiny of the'
.. ' [[Wikipedia:Office actions|Wikimedia Foundation Office]]'
.. ' and is protected.'
if protectionObj.protectionDate then
ret = ret .. ' It has been protected since ${PROTECTIONDATE}.'
end
return ret
end,
explanation = "If you can edit this page, please discuss all changes and"
.. " additions on the ${TALKPAGE} first. '''Do not remove protection from this"
.. " page unless you are authorized by the Wikimedia Foundation to do"
.. " so.'''",
image = 'Office-protection-shackle.svg',
},
reset = {
description = 'For pages protected by the Wikimedia Foundation and'
.. ' "reset" to a bare-bones version',
text = 'This ${PAGETYPE} is currently under the'
.. ' scrutiny of the'
.. ' [[Wikipedia:Office actions|Wikimedia Foundation Office]]'
.. ' and is protected.',
explanation = function (protectionObj, args)
local ret = ''
if protectionObj.protectionDate then
ret = ret .. 'On ${PROTECTIONDATE} this ${PAGETYPE} was'
else
ret = ret .. 'This ${PAGETYPE} has been'
end
ret = ret .. ' reduced to a'
.. ' simplified, "bare bones" version so that it may be completely'
.. ' rewritten to ensure it meets the policies of'
.. ' [[WP:NPOV|Neutral Point of View]] and [[WP:V|Verifiability]].'
.. ' Standard Wikipedia policies will apply to its rewriting—which'
.. ' will eventually be open to all editors—and will be strictly'
.. ' enforced. The ${PAGETYPE} has been ${PROTECTIONLEVEL} while'
.. ' it is being rebuilt.\n\n'
.. 'Any insertion of material directly from'
.. ' pre-protection revisions of the ${PAGETYPE} will be removed, as'
.. ' will any material added to the ${PAGETYPE} that is not properly'
.. ' sourced. The associated talk page(s) were also cleared on the'
.. " same date.\n\n"
.. "If you can edit this page, please discuss all changes and"
.. " additions on the ${TALKPAGE} first. '''Do not override"
.. " this action, and do not remove protection from this page,"
.. " unless you are authorized by the Wikimedia Foundation"
.. " to do so. No editor may remove this notice.'''"
return ret
end,
image = 'Office-protection-shackle.svg',
},
sock = {
description = 'For pages protected due to'
.. ' [[Wikipedia:Sock puppetry|sock puppetry]]',
text = '${INTROFRAGMENT} to prevent [[Wikipedia:Sock puppetry|sock puppets]] of'
.. ' [[Wikipedia:Blocking policy|blocked]] or'
.. ' [[Wikipedia:Banning policy|banned users]]'
.. ' from editing it.',
tooltip = '${TOOLTIPFRAGMENT} to prevent sock puppets of blocked or banned users from'
.. ' editing it',
},
template = {
description = 'For [[Wikipedia:High-risk templates|high-risk]]'
.. ' templates and Lua modules',
text = 'This is a permanently [[Help:Protection|protected]] ${PAGETYPE},'
.. ' as it is [[Wikipedia:High-risk templates|high-risk]].',
explanation = 'Please discuss any changes on the ${TALKPAGE}; you may'
.. ' ${EDITREQUEST} to ask an'
.. ' [[Wikipedia:Administrators|administrator]] or'
.. ' [[Wikipedia:Template editor|template editor]] to make an edit if'
.. ' it is [[Help:Minor edit#When to mark an edit as a minor edit'
.. '|uncontroversial]] or supported by'
.. ' [[Wikipedia:Consensus|consensus]]. You can also'
.. ' [[Wikipedia:Requests for page protection|request]] that the page be'
.. ' unprotected.',
tooltip = 'This high-risk ${PAGETYPE} is permanently ${PROTECTIONLEVEL}'
.. ' to prevent vandalism',
alt = 'Permanently protected ${PAGETYPE}',
},
usertalk = {
description = 'For pages protected against disruptive edits by a'
.. ' particular user',
text = '${INTROFRAGMENT} to prevent ${VANDAL} from using it to make disruptive edits,'
.. ' such as abusing the'
.. ' {{[[Template:unblock|unblock]]}} template.',
explanation = 'If you cannot edit this user talk page and you need to'
.. ' make a change or leave a message, you can'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for edits to a protected page'
.. '|request an edit]],'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for reduction in protection level'
.. '|request unprotection]],'
.. ' [[Special:Userlogin|log in]],'
.. ' or [[Special:UserLogin/signup|create an account]].',
},
vandalism = {
description = 'For pages protected against'
.. ' [[Wikipedia:Vandalism|vandalism]]',
text = '${INTROFRAGMENT} due to [[Wikipedia:Vandalism|vandalism]].',
explanation = function (protectionObj, args)
local ret = ''
if protectionObj.level == 'sysop' then
ret = ret .. "This protection is '''not''' an endorsement of the"
.. ' ${CURRENTVERSION}. '
end
return ret .. '${EXPLANATIONBLURB}'
end,
tooltip = '${TOOLTIPFRAGMENT} due to vandalism',
}
},
move = {
dispute = {
description = 'For pages protected against page moves due to'
.. ' disputes over the page title',
explanation = "This protection is '''not''' an endorsement of the"
.. ' ${CURRENTVERSION}. ${EXPLANATIONBLURB}',
image = 'Move-protection-shackle.svg'
},
vandalism = {
description = 'For pages protected against'
.. ' [[Wikipedia:Vandalism#Page-move vandalism'
.. ' |page-move vandalism]]'
}
},
autoreview = {},
upload = {}
},
--------------------------------------------------------------------------------
--
-- GENERAL DATA TABLES
--
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- Protection blurbs
--------------------------------------------------------------------------------
-- This table produces the protection blurbs available with the
-- ${PROTECTIONBLURB} parameter. It is sorted by protection action and
-- protection level, and is checked by the module in the following order:
-- 1. page's protection action, page's protection level
-- 2. page's protection action, default protection level
-- 3. "edit" protection action, default protection level
--
-- It is possible to use banner parameters inside this table.
-- *required* - this table needs edit, move, autoreview and upload subtables.
protectionBlurbs = {
edit = {
default = 'This ${PAGETYPE} is currently [[Help:Protection|'
.. 'protected]] from editing',
autoconfirmed = 'Editing of this ${PAGETYPE} by [[Wikipedia:User access'
.. ' levels#New users|new]] or [[Wikipedia:User access levels#Unregistered'
.. ' users|unregistered]] users is currently [[Help:Protection|disabled]]',
extendedconfirmed = 'This ${PAGETYPE} is currently under extended confirmed protection',
},
move = {
default = 'This ${PAGETYPE} is currently [[Help:Protection|protected]]'
.. ' from [[Help:Moving a page|page moves]]'
},
autoreview = {
default = 'All edits made to this ${PAGETYPE} by'
.. ' [[Wikipedia:User access levels#New users|new]] or'
.. ' [[Wikipedia:User access levels#Unregistered users|unregistered]]'
.. ' users are currently'
.. ' [[Wikipedia:Pending changes|subject to review]]'
},
upload = {
default = 'Uploading new versions of this ${PAGETYPE} is currently disabled'
}
},
--------------------------------------------------------------------------------
-- Explanation blurbs
--------------------------------------------------------------------------------
-- This table produces the explanation blurbs available with the
-- ${EXPLANATIONBLURB} parameter. It is sorted by protection action,
-- protection level, and whether the page is a talk page or not. If the page is
-- a talk page it will have a talk key of "talk"; otherwise it will have a talk
-- key of "subject". The table is checked in the following order:
-- 1. page's protection action, page's protection level, page's talk key
-- 2. page's protection action, page's protection level, default talk key
-- 3. page's protection action, default protection level, page's talk key
-- 4. page's protection action, default protection level, default talk key
--
-- It is possible to use banner parameters inside this table.
-- *required* - this table needs edit, move, autoreview and upload subtables.
explanationBlurbs = {
edit = {
autoconfirmed = {
subject = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details. If you'
.. ' cannot edit this ${PAGETYPE} and you wish to make a change, you can'
.. ' ${EDITREQUEST}, discuss changes on the ${TALKPAGE},'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for reduction in protection level'
.. '|request unprotection]], [[Special:Userlogin|log in]], or'
.. ' [[Special:UserLogin/signup|create an account]].',
default = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details. If you'
.. ' cannot edit this ${PAGETYPE} and you wish to make a change, you can'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for reduction in protection level'
.. '|request unprotection]], [[Special:Userlogin|log in]], or'
.. ' [[Special:UserLogin/signup|create an account]].',
},
extendedconfirmed = {
default = 'Extended confirmed protection prevents edits from all unregistered editors'
.. ' and registered users with fewer than 30 days tenure and 500 edits.'
.. ' The [[Wikipedia:Protection policy#extended|policy on community use]]'
.. ' specifies that extended confirmed protection can be applied to combat'
.. ' disruption, if semi-protection has proven to be ineffective.'
.. ' Extended confirmed protection may also be applied to enforce'
.. ' [[Wikipedia:Arbitration Committee|arbitration sanctions]].'
.. ' Please discuss any changes on the ${TALKPAGE}; you may'
.. ' ${EDITREQUEST} to ask for uncontroversial changes supported by'
.. ' [[Wikipedia:Consensus|consensus]].'
},
default = {
subject = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' Please discuss any changes on the ${TALKPAGE}; you'
.. ' may ${EDITREQUEST} to ask an'
.. ' [[Wikipedia:Administrators|administrator]] to make an edit if it'
.. ' is [[Help:Minor edit#When to mark an edit as a minor edit'
.. '|uncontroversial]] or supported by [[Wikipedia:Consensus'
.. '|consensus]]. You may also [[Wikipedia:Requests for'
.. ' page protection#Current requests for reduction in protection level'
.. '|request]] that this page be unprotected.',
default = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' You may [[Wikipedia:Requests for page'
.. ' protection#Current requests for edits to a protected page|request an'
.. ' edit]] to this page, or [[Wikipedia:Requests for'
.. ' page protection#Current requests for reduction in protection level'
.. '|ask]] for it to be unprotected.'
}
},
move = {
default = {
subject = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' The page may still be edited but cannot be moved'
.. ' until unprotected. Please discuss any suggested moves on the'
.. ' ${TALKPAGE} or at [[Wikipedia:Requested moves]]. You can also'
.. ' [[Wikipedia:Requests for page protection|request]] that the page be'
.. ' unprotected.',
default = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' The page may still be edited but cannot be moved'
.. ' until unprotected. Please discuss any suggested moves at'
.. ' [[Wikipedia:Requested moves]]. You can also'
.. ' [[Wikipedia:Requests for page protection|request]] that the page be'
.. ' unprotected.'
}
},
autoreview = {
default = {
default = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' Edits to this ${PAGETYPE} by new and unregistered users'
.. ' will not be visible to readers until they are accepted by'
.. ' a reviewer. To avoid the need for your edits to be'
.. ' reviewed, you may'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for reduction in protection level'
.. '|request unprotection]], [[Special:Userlogin|log in]], or'
.. ' [[Special:UserLogin/signup|create an account]].'
},
},
upload = {
default = {
default = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' The page may still be edited but new versions of the file'
.. ' cannot be uploaded until it is unprotected. You can'
.. ' request that a new version be uploaded by using a'
.. ' [[Wikipedia:Edit requests|protected edit request]], or you'
.. ' can [[Wikipedia:Requests for page protection|request]]'
.. ' that the file be unprotected.'
}
}
},
--------------------------------------------------------------------------------
-- Protection levels
--------------------------------------------------------------------------------
-- This table provides the data for the ${PROTECTIONLEVEL} parameter, which
-- produces a short label for different protection levels. It is sorted by
-- protection action and protection level, and is checked in the following
-- order:
-- 1. page's protection action, page's protection level
-- 2. page's protection action, default protection level
-- 3. "edit" protection action, default protection level
--
-- It is possible to use banner parameters inside this table.
-- *required* - this table needs edit, move, autoreview and upload subtables.
protectionLevels = {
edit = {
default = 'protected',
templateeditor = 'template-protected',
extendedconfirmed = 'extended-protected',
autoconfirmed = 'semi-protected',
},
move = {
default = 'move-protected'
},
autoreview = {
},
upload = {
default = 'upload-protected'
}
},
--------------------------------------------------------------------------------
-- Images
--------------------------------------------------------------------------------
-- This table lists different padlock images for each protection action and
-- protection level. It is used if an image is not specified in any of the
-- banner data tables, and if the page does not satisfy the conditions for using
-- the ['image-filename-indef'] image. It is checked in the following order:
-- 1. page's protection action, page's protection level
-- 2. page's protection action, default protection level
images = {
edit = {
default = 'Full-protection-shackle.svg',
templateeditor = 'Template-protection-shackle.svg',
extendedconfirmed = 'Extended-protection-shackle.svg',
autoconfirmed = 'Semi-protection-shackle.svg'
},
move = {
default = 'Move-protection-shackle.svg',
},
autoreview = {
default = 'Pending-protection-shackle.svg'
},
upload = {
default = 'Upload-protection-shackle.svg'
}
},
-- Pages with a reason specified in this table will show the special "indef"
-- padlock, defined in the 'image-filename-indef' message, if no expiry is set.
indefImageReasons = {
template = true
},
--------------------------------------------------------------------------------
-- Image links
--------------------------------------------------------------------------------
-- This table provides the data for the ${IMAGELINK} parameter, which gets
-- the image link for small padlock icons based on the page's protection action
-- and protection level. It is checked in the following order:
-- 1. page's protection action, page's protection level
-- 2. page's protection action, default protection level
-- 3. "edit" protection action, default protection level
--
-- It is possible to use banner parameters inside this table.
-- *required* - this table needs edit, move, autoreview and upload subtables.
imageLinks = {
edit = {
default = 'Wikipedia:Protection policy#full',
templateeditor = 'Wikipedia:Protection policy#template',
extendedconfirmed = 'Wikipedia:Protection policy#extended',
autoconfirmed = 'Wikipedia:Protection policy#semi'
},
move = {
default = 'Wikipedia:Protection policy#move'
},
autoreview = {
default = 'Wikipedia:Protection policy#pending'
},
upload = {
default = 'Wikipedia:Protection policy#upload'
}
},
--------------------------------------------------------------------------------
-- Padlock indicator names
--------------------------------------------------------------------------------
-- This table provides the "name" attribute for the <indicator> extension tag
-- with which small padlock icons are generated. All indicator tags on a page
-- are displayed in alphabetical order based on this attribute, and with
-- indicator tags with duplicate names, the last tag on the page wins.
-- The attribute is chosen based on the protection action; table keys must be a
-- protection action name or the string "default".
padlockIndicatorNames = {
autoreview = 'pp-autoreview',
default = 'pp-default'
},
--------------------------------------------------------------------------------
-- Protection categories
--------------------------------------------------------------------------------
--[[
-- The protection categories are stored in the protectionCategories table.
-- Keys to this table are made up of the following strings:
--
-- 1. the expiry date
-- 2. the namespace
-- 3. the protection reason (e.g. "dispute" or "vandalism")
-- 4. the protection level (e.g. "sysop" or "autoconfirmed")
-- 5. the action (e.g. "edit" or "move")
--
-- When the module looks up a category in the table, first it will will check to
-- see a key exists that corresponds to all five parameters. For example, a
-- user page semi-protected from vandalism for two weeks would have the key
-- "temp-user-vandalism-autoconfirmed-edit". If no match is found, the module
-- changes the first part of the key to "all" and checks the table again. It
-- keeps checking increasingly generic key combinations until it finds the
-- field, or until it reaches the key "all-all-all-all-all".
--
-- The module uses a binary matrix to determine the order in which to search.
-- This is best demonstrated by a table. In this table, the "0" values
-- represent "all", and the "1" values represent the original data (e.g.
-- "indef" or "file" or "vandalism").
--
-- expiry namespace reason level action
-- order
-- 1 1 1 1 1 1
-- 2 0 1 1 1 1
-- 3 1 0 1 1 1
-- 4 0 0 1 1 1
-- 5 1 1 0 1 1
-- 6 0 1 0 1 1
-- 7 1 0 0 1 1
-- 8 0 0 0 1 1
-- 9 1 1 1 0 1
-- 10 0 1 1 0 1
-- 11 1 0 1 0 1
-- 12 0 0 1 0 1
-- 13 1 1 0 0 1
-- 14 0 1 0 0 1
-- 15 1 0 0 0 1
-- 16 0 0 0 0 1
-- 17 1 1 1 1 0
-- 18 0 1 1 1 0
-- 19 1 0 1 1 0
-- 20 0 0 1 1 0
-- 21 1 1 0 1 0
-- 22 0 1 0 1 0
-- 23 1 0 0 1 0
-- 24 0 0 0 1 0
-- 25 1 1 1 0 0
-- 26 0 1 1 0 0
-- 27 1 0 1 0 0
-- 28 0 0 1 0 0
-- 29 1 1 0 0 0
-- 30 0 1 0 0 0
-- 31 1 0 0 0 0
-- 32 0 0 0 0 0
--
-- In this scheme the action has the highest priority, as it is the last
-- to change, and the expiry has the least priority, as it changes the most.
-- The priorities of the expiry, the protection level and the action are
-- fixed, but the priorities of the reason and the namespace can be swapped
-- through the use of the cfg.bannerDataNamespaceHasPriority table.
--]]
-- If the reason specified to the template is listed in this table,
-- namespace data will take priority over reason data in the protectionCategories
-- table.
reasonsWithNamespacePriority = {
vandalism = true,
},
-- The string to use as a namespace key for the protectionCategories table for each
-- namespace number.
categoryNamespaceKeys = {
[ 2] = 'user',
[ 3] = 'user',
[ 4] = 'project',
[ 6] = 'file',
[ 8] = 'mediawiki',
[ 10] = 'template',
[ 12] = 'project',
[ 14] = 'category',
[100] = 'portal',
[828] = 'module',
},
protectionCategories = {
['all|all|all|all|all'] = 'Wikipedia fully protected pages',
['all|all|office|all|all'] = 'Wikipedia Office-protected pages',
['all|all|reset|all|all'] = 'Wikipedia Office-protected pages',
['all|all|dmca|all|all'] = 'Wikipedia Office-protected pages',
['all|all|mainpage|all|all'] = 'Wikipedia fully-protected main page files',
['all|all|all|extendedconfirmed|all'] = 'Wikipedia extended-confirmed-protected pages',
['all|all|ecp|extendedconfirmed|all'] = 'Wikipedia extended-confirmed-protected pages',
['all|template|all|all|edit'] = 'Wikipedia fully protected templates',
['all|all|all|autoconfirmed|edit'] = 'Wikipedia semi-protected pages',
['indef|all|all|autoconfirmed|edit'] = 'Wikipedia indefinitely semi-protected pages',
['all|all|blp|autoconfirmed|edit'] = 'Wikipedia indefinitely semi-protected biographies of living people',
['temp|all|blp|autoconfirmed|edit'] = 'Wikipedia temporarily semi-protected biographies of living people',
['all|all|dispute|autoconfirmed|edit'] = 'Wikipedia pages semi-protected due to dispute',
['all|all|sock|autoconfirmed|edit'] = 'Wikipedia pages semi-protected from banned users',
['all|all|vandalism|autoconfirmed|edit'] = 'Wikipedia pages semi-protected against vandalism',
['all|category|all|autoconfirmed|edit'] = 'Wikipedia semi-protected categories',
['all|file|all|autoconfirmed|edit'] = 'Wikipedia semi-protected files',
['all|portal|all|autoconfirmed|edit'] = 'Wikipedia semi-protected portals',
['all|project|all|autoconfirmed|edit'] = 'Wikipedia semi-protected project pages',
['all|talk|all|autoconfirmed|edit'] = 'Wikipedia semi-protected talk pages',
['all|template|all|autoconfirmed|edit'] = 'Wikipedia semi-protected templates',
['all|user|all|autoconfirmed|edit'] = 'Wikipedia semi-protected user and user talk pages',
['all|all|all|templateeditor|edit'] = 'Wikipedia template-protected pages other than templates and modules',
['all|template|all|templateeditor|edit'] = 'Wikipedia template-protected templates',
['all|template|all|templateeditor|move'] = 'Wikipedia template-protected templates', -- move-protected templates
['all|all|blp|sysop|edit'] = 'Wikipedia indefinitely protected biographies of living people',
['temp|all|blp|sysop|edit'] = 'Wikipedia temporarily protected biographies of living people',
['all|all|dispute|sysop|edit'] = 'Wikipedia pages protected due to dispute',
['all|all|sock|sysop|edit'] = 'Wikipedia pages protected from banned users',
['all|all|vandalism|sysop|edit'] = 'Wikipedia pages protected against vandalism',
['all|category|all|sysop|edit'] = 'Wikipedia fully protected categories',
['all|file|all|sysop|edit'] = 'Wikipedia fully-protected files',
['all|project|all|sysop|edit'] = 'Wikipedia fully-protected project pages',
['all|talk|all|sysop|edit'] = 'Wikipedia fully-protected talk pages',
['all|template|all|extendedconfirmed|edit'] = 'Wikipedia extended-confirmed-protected templates',
['all|template|all|sysop|edit'] = 'Wikipedia fully protected templates',
['all|user|all|sysop|edit'] = 'Wikipedia fully protected user and user talk pages',
['all|module|all|all|edit'] = 'Wikipedia fully-protected modules',
['all|module|all|templateeditor|edit'] = 'Wikipedia template-protected modules',
['all|module|all|extendedconfirmed|edit'] = 'Wikipedia extended-confirmed-protected modules',
['all|module|all|autoconfirmed|edit'] = 'Wikipedia semi-protected modules',
['all|all|all|sysop|move'] = 'Wikipedia move-protected pages',
['indef|all|all|sysop|move'] = 'Wikipedia indefinitely move-protected pages',
['all|all|dispute|sysop|move'] = 'Wikipedia pages move-protected due to dispute',
['all|all|vandalism|sysop|move'] = 'Wikipedia pages move-protected due to vandalism',
['all|portal|all|sysop|move'] = 'Wikipedia move-protected portals',
['all|project|all|sysop|move'] = 'Wikipedia move-protected project pages',
['all|talk|all|sysop|move'] = 'Wikipedia move-protected talk pages',
['all|template|all|sysop|move'] = 'Wikipedia move-protected templates',
['all|user|all|sysop|move'] = 'Wikipedia move-protected user and user talk pages',
['all|all|all|autoconfirmed|autoreview'] = 'Wikipedia pending changes protected pages',
['all|file|all|all|upload'] = 'Wikipedia upload-protected files',
},
--------------------------------------------------------------------------------
-- Expiry category config
--------------------------------------------------------------------------------
-- This table configures the expiry category behaviour for each protection
-- action.
-- * If set to true, setting that action will always categorise the page if
-- an expiry parameter is not set.
-- * If set to false, setting that action will never categorise the page.
-- * If set to nil, the module will categorise the page if:
-- 1) an expiry parameter is not set, and
-- 2) a reason is provided, and
-- 3) the specified reason is not blacklisted in the reasonsWithoutExpiryCheck
-- table.
expiryCheckActions = {
edit = nil,
move = false,
autoreview = true,
upload = false
},
reasonsWithoutExpiryCheck = {
blp = true,
template = true,
},
--------------------------------------------------------------------------------
-- Pagetypes
--------------------------------------------------------------------------------
-- This table produces the page types available with the ${PAGETYPE} parameter.
-- Keys are namespace numbers, or the string "default" for the default value.
pagetypes = {
[0] = 'article',
[6] = 'file',
[10] = 'template',
[14] = 'category',
[828] = 'module',
default = 'page'
},
--------------------------------------------------------------------------------
-- Strings marking indefinite protection
--------------------------------------------------------------------------------
-- This table contains values passed to the expiry parameter that mean the page
-- is protected indefinitely.
indefStrings = {
['indef'] = true,
['indefinite'] = true,
['indefinitely'] = true,
['infinite'] = true,
},
--------------------------------------------------------------------------------
-- Group hierarchy
--------------------------------------------------------------------------------
-- This table maps each group to all groups that have a superset of the original
-- group's page editing permissions.
hierarchy = {
sysop = {},
reviewer = {'sysop'},
filemover = {'sysop'},
templateeditor = {'sysop'},
extendedconfirmed = {'sysop'},
autoconfirmed = {'reviewer', 'filemover', 'templateeditor', 'extendedconfirmed'},
user = {'autoconfirmed'},
['*'] = {'user'}
},
--------------------------------------------------------------------------------
-- Wrapper templates and their default arguments
--------------------------------------------------------------------------------
-- This table contains wrapper templates used with the module, and their
-- default arguments. Templates specified in this table should contain the
-- following invocation, and no other template content:
--
-- {{#invoke:Protection banner|main}}
--
-- If other content is desired, it can be added between
-- <noinclude>...</noinclude> tags.
--
-- When a user calls one of these wrapper templates, they will use the
-- default arguments automatically. However, users can override any of the
-- arguments.
wrappers = {
['Template:Pp'] = {},
['Template:Pp-extended'] = {'ecp'},
['Template:Pp-blp'] = {'blp'},
-- we don't need Template:Pp-create
['Template:Pp-dispute'] = {'dispute'},
['Template:Pp-main-page'] = {'mainpage'},
['Template:Pp-move'] = {action = 'move', catonly = 'yes'},
['Template:Pp-move-dispute'] = {'dispute', action = 'move', catonly = 'yes'},
-- we don't need Template:Pp-move-indef
['Template:Pp-move-vandalism'] = {'vandalism', action = 'move', catonly = 'yes'},
['Template:Pp-office'] = {'office'},
['Template:Pp-office-dmca'] = {'dmca'},
['Template:Pp-pc'] = {action = 'autoreview', small = true},
['Template:Pp-pc1'] = {action = 'autoreview', small = true},
['Template:Pp-reset'] = {'reset'},
['Template:Pp-semi-indef'] = {small = true},
['Template:Pp-sock'] = {'sock'},
['Template:Pp-template'] = {'template', small = true},
['Template:Pp-upload'] = {action = 'upload'},
['Template:Pp-usertalk'] = {'usertalk'},
['Template:Pp-vandalism'] = {'vandalism'},
},
--------------------------------------------------------------------------------
--
-- MESSAGES
--
--------------------------------------------------------------------------------
msg = {
--------------------------------------------------------------------------------
-- Intro blurb and intro fragment
--------------------------------------------------------------------------------
-- These messages specify what is produced by the ${INTROBLURB} and
-- ${INTROFRAGMENT} parameters. If the protection is temporary they use the
-- intro-blurb-expiry or intro-fragment-expiry, and if not they use
-- intro-blurb-noexpiry or intro-fragment-noexpiry.
-- It is possible to use banner parameters in these messages.
['intro-blurb-expiry'] = '${PROTECTIONBLURB} until ${EXPIRY}.',
['intro-blurb-noexpiry'] = '${PROTECTIONBLURB}.',
['intro-fragment-expiry'] = '${PROTECTIONBLURB} until ${EXPIRY},',
['intro-fragment-noexpiry'] = '${PROTECTIONBLURB}',
--------------------------------------------------------------------------------
-- Tooltip blurb
--------------------------------------------------------------------------------
-- These messages specify what is produced by the ${TOOLTIPBLURB} parameter.
-- If the protection is temporary the tooltip-blurb-expiry message is used, and
-- if not the tooltip-blurb-noexpiry message is used.
-- It is possible to use banner parameters in these messages.
['tooltip-blurb-expiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL} until ${EXPIRY}.',
['tooltip-blurb-noexpiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL}.',
['tooltip-fragment-expiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL} until ${EXPIRY},',
['tooltip-fragment-noexpiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL}',
--------------------------------------------------------------------------------
-- Special explanation blurb
--------------------------------------------------------------------------------
-- An explanation blurb for pages that cannot be unprotected, e.g. for pages
-- in the MediaWiki namespace.
-- It is possible to use banner parameters in this message.
['explanation-blurb-nounprotect'] = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' Please discuss any changes on the ${TALKPAGE}; you'
.. ' may ${EDITREQUEST} to ask an'
.. ' [[Wikipedia:Administrators|administrator]] to make an edit if it'
.. ' is [[Help:Minor edit#When to mark an edit as a minor edit'
.. '|uncontroversial]] or supported by [[Wikipedia:Consensus'
.. '|consensus]].',
--------------------------------------------------------------------------------
-- Protection log display values
--------------------------------------------------------------------------------
-- These messages determine the display values for the protection log link
-- or the pending changes log link produced by the ${PROTECTIONLOG} parameter.
-- It is possible to use banner parameters in these messages.
['protection-log-display'] = 'protection log',
['pc-log-display'] = 'pending changes log',
--------------------------------------------------------------------------------
-- Current version display values
--------------------------------------------------------------------------------
-- These messages determine the display values for the page history link
-- or the move log link produced by the ${CURRENTVERSION} parameter.
-- It is possible to use banner parameters in these messages.
['current-version-move-display'] = 'current title',
['current-version-edit-display'] = 'current version',
--------------------------------------------------------------------------------
-- Talk page
--------------------------------------------------------------------------------
-- This message determines the display value of the talk page link produced
-- with the ${TALKPAGE} parameter.
-- It is possible to use banner parameters in this message.
['talk-page-link-display'] = 'talk page',
--------------------------------------------------------------------------------
-- Edit requests
--------------------------------------------------------------------------------
-- This message determines the display value of the edit request link produced
-- with the ${EDITREQUEST} parameter.
-- It is possible to use banner parameters in this message.
['edit-request-display'] = 'submit an edit request',
--------------------------------------------------------------------------------
-- Expiry date format
--------------------------------------------------------------------------------
-- This is the format for the blurb expiry date. It should be valid input for
-- the first parameter of the #time parser function.
['expiry-date-format'] = 'F j, Y "at" H:i e',
--------------------------------------------------------------------------------
-- Tracking categories
--------------------------------------------------------------------------------
-- These messages determine which tracking categories the module outputs.
['tracking-category-incorrect'] = 'Wikipedia pages with incorrect protection templates',
['tracking-category-template'] = 'Wikipedia template-protected pages other than templates and modules',
--------------------------------------------------------------------------------
-- Images
--------------------------------------------------------------------------------
-- These are images that are not defined by their protection action and protection level.
['image-filename-indef'] = 'Full-protection-shackle.svg',
['image-filename-default'] = 'Transparent.gif',
--------------------------------------------------------------------------------
-- End messages
--------------------------------------------------------------------------------
}
--------------------------------------------------------------------------------
-- End configuration
--------------------------------------------------------------------------------
}
7b4133071e798dbabff5c4e8628e5537a1d376e3
Template:Documentation subpage
10
28
47
2022-02-09T04:09:32Z
en>Bsherr
0
semantic emphasis, shortening emphasized phrase
wikitext
text/x-wiki
<includeonly><!--
-->{{#ifeq:{{lc:{{SUBPAGENAME}}}} |{{{override|doc}}}
| <!--(this template has been transcluded on a /doc or /{{{override}}} page)-->
</includeonly><!--
-->{{#ifeq:{{{doc-notice|show}}} |show
| {{Mbox
| type = notice
| style = margin-bottom:1.0em;
| image = [[File:Edit-copy green.svg|40px|alt=|link=]]
| text =
{{strong|This is a [[Wikipedia:Template documentation|documentation]] [[Wikipedia:Subpages|subpage]]}} for {{terminate sentence|{{{1|[[:{{SUBJECTSPACE}}:{{BASEPAGENAME}}]]}}}}}<br />It contains usage information, [[Wikipedia:Categorization|categories]] and other content that is not part of the original {{#if:{{{text2|}}} |{{{text2}}} |{{#if:{{{text1|}}} |{{{text1}}} |{{#ifeq:{{SUBJECTSPACE}} |{{ns:User}} |{{lc:{{SUBJECTSPACE}}}} template page |{{#if:{{SUBJECTSPACE}} |{{lc:{{SUBJECTSPACE}}}} page|article}}}}}}}}.
}}
}}<!--
-->{{DEFAULTSORT:{{{defaultsort|{{PAGENAME}}}}}}}<!--
-->{{#if:{{{inhibit|}}} |<!--(don't categorize)-->
| <includeonly><!--
-->{{#ifexist:{{NAMESPACE}}:{{BASEPAGENAME}}
| [[Category:{{#switch:{{SUBJECTSPACE}} |Template=Template |Module=Module |User=User |#default=Wikipedia}} documentation pages]]
| [[Category:Documentation subpages without corresponding pages]]
}}<!--
--></includeonly>
}}<!--
(completing initial #ifeq: at start of template:)
--><includeonly>
| <!--(this template has not been transcluded on a /doc or /{{{override}}} page)-->
}}<!--
--></includeonly><noinclude>{{Documentation}}</noinclude>
932915be87123dcf74687ffca846a3130a6a52af
Module:Check for unknown parameters
828
61
113
2022-02-21T05:24:13Z
en>BusterD
0
Changed protection settings for "[[Module:Check for unknown parameters]]": [[WP:High-risk templates|Highly visible template]]; requested at [[WP:RfPP]] ([Edit=Require administrator access] (indefinite) [Move=Require administrator access] (indefinite))
Scribunto
text/plain
-- This module may be used to compare the arguments passed to the parent
-- with a list of arguments, returning a specified result if an argument is
-- not on the list
local p = {}
local function trim(s)
return s:match('^%s*(.-)%s*$')
end
local function isnotempty(s)
return s and s:match('%S')
end
local function clean(text)
-- Return text cleaned for display and truncated if too long.
-- Strip markers are replaced with dummy text representing the original wikitext.
local pos, truncated
local function truncate(text)
if truncated then
return ''
end
if mw.ustring.len(text) > 25 then
truncated = true
text = mw.ustring.sub(text, 1, 25) .. '...'
end
return mw.text.nowiki(text)
end
local parts = {}
for before, tag, remainder in text:gmatch('([^\127]*)\127[^\127]*%-(%l+)%-[^\127]*\127()') do
pos = remainder
table.insert(parts, truncate(before) .. '<' .. tag .. '>...</' .. tag .. '>')
end
table.insert(parts, truncate(text:sub(pos or 1)))
return table.concat(parts)
end
function p._check(args, pargs)
if type(args) ~= "table" or type(pargs) ~= "table" then
-- TODO: error handling
return
end
-- create the list of known args, regular expressions, and the return string
local knownargs = {}
local regexps = {}
for k, v in pairs(args) do
if type(k) == 'number' then
v = trim(v)
knownargs[v] = 1
elseif k:find('^regexp[1-9][0-9]*$') then
table.insert(regexps, '^' .. v .. '$')
end
end
-- loop over the parent args, and make sure they are on the list
local ignoreblank = isnotempty(args['ignoreblank'])
local showblankpos = isnotempty(args['showblankpositional'])
local values = {}
for k, v in pairs(pargs) do
if type(k) == 'string' and knownargs[k] == nil then
local knownflag = false
for _, regexp in ipairs(regexps) do
if mw.ustring.match(k, regexp) then
knownflag = true
break
end
end
if not knownflag and ( not ignoreblank or isnotempty(v) ) then
table.insert(values, clean(k))
end
elseif type(k) == 'number' and knownargs[tostring(k)] == nil then
local knownflag = false
for _, regexp in ipairs(regexps) do
if mw.ustring.match(tostring(k), regexp) then
knownflag = true
break
end
end
if not knownflag and ( showblankpos or isnotempty(v) ) then
table.insert(values, k .. ' = ' .. clean(v))
end
end
end
-- add results to the output tables
local res = {}
if #values > 0 then
local unknown_text = args['unknown'] or 'Found _VALUE_, '
if mw.getCurrentFrame():preprocess( "{{REVISIONID}}" ) == "" then
local preview_text = args['preview']
if isnotempty(preview_text) then
preview_text = require('Module:If preview')._warning({preview_text})
elseif preview == nil then
preview_text = unknown_text
end
unknown_text = preview_text
end
for _, v in pairs(values) do
-- Fix odd bug for | = which gets stripped to the empty string and
-- breaks category links
if v == '' then v = ' ' end
-- avoid error with v = 'example%2' ("invalid capture index")
local r = unknown_text:gsub('_VALUE_', {_VALUE_ = v})
table.insert(res, r)
end
end
return table.concat(res)
end
function p.check(frame)
local args = frame.args
local pargs = frame:getParent().args
return p._check(args, pargs)
end
return p
93db6d115d4328d2a5148bb42959105e367b663e
Module:Effective protection expiry
828
65
121
2022-02-23T10:59:29Z
en>Xaosflux
0
Changed protection settings for "[[Module:Effective protection expiry]]": used in the mediawiki interface / match [[Module:Effective protection level]] ([Edit=Require administrator access] (indefinite) [Move=Require administrator access] (indefinite))
Scribunto
text/plain
local p = {}
-- Returns the expiry of a restriction of an action on a given title, or unknown if it cannot be known.
-- If no title is specified, the title of the page being displayed is used.
function p._main(action, pagename)
local title
if type(pagename) == 'table' and pagename.prefixedText then
title = pagename
elseif pagename then
title = mw.title.new(pagename)
else
title = mw.title.getCurrentTitle()
end
pagename = title.prefixedText
if action == 'autoreview' then
local stabilitySettings = mw.ext.FlaggedRevs.getStabilitySettings(title)
return stabilitySettings and stabilitySettings.expiry or 'unknown'
elseif action ~= 'edit' and action ~= 'move' and action ~= 'create' and action ~= 'upload' then
error( 'First parameter must be one of edit, move, create, upload, autoreview', 2 )
end
local rawExpiry = mw.getCurrentFrame():callParserFunction('PROTECTIONEXPIRY', action, pagename)
if rawExpiry == 'infinity' then
return 'infinity'
elseif rawExpiry == '' then
return 'unknown'
else
local year, month, day, hour, minute, second = rawExpiry:match(
'^(%d%d%d%d)(%d%d)(%d%d)(%d%d)(%d%d)(%d%d)$'
)
if year then
return string.format(
'%s-%s-%sT%s:%s:%s',
year, month, day, hour, minute, second
)
else
error('internal error in Module:Effective protection expiry; malformed expiry timestamp')
end
end
end
setmetatable(p, { __index = function(t, k)
return function(frame)
return t._main(k, frame.args[1])
end
end })
return p
9a8c58dc2667232ed08a9b206a5d89ca8150312b
Module:Template link general
828
85
161
2022-03-08T08:30:51Z
en>Primefac
0
update from sandbox - fixes to _show_result and adding _expand
Scribunto
text/plain
-- This implements Template:Tlg
local getArgs = require('Module:Arguments').getArgs
local p = {}
-- Is a string non-empty?
local function _ne(s)
return s ~= nil and s ~= ""
end
local nw = mw.text.nowiki
local function addTemplate(s)
local i, _ = s:find(':', 1, true)
if i == nil then
return 'Template:' .. s
end
local ns = s:sub(1, i - 1)
if ns == '' or mw.site.namespaces[ns] then
return s
else
return 'Template:' .. s
end
end
local function trimTemplate(s)
local needle = 'template:'
if s:sub(1, needle:len()):lower() == needle then
return s:sub(needle:len() + 1)
else
return s
end
end
local function linkTitle(args)
if _ne(args.nolink) then
return args['1']
end
local titleObj
local titlePart = '[['
if args['1'] then
-- This handles :Page and other NS
titleObj = mw.title.new(args['1'], 'Template')
else
titleObj = mw.title.getCurrentTitle()
end
titlePart = titlePart .. (titleObj ~= nil and titleObj.fullText or
addTemplate(args['1']))
local textPart = args.alttext
if not _ne(textPart) then
if titleObj ~= nil then
textPart = titleObj:inNamespace("Template") and args['1'] or titleObj.fullText
else
-- redlink
textPart = args['1']
end
end
if _ne(args.subst) then
-- HACK: the ns thing above is probably broken
textPart = 'subst:' .. textPart
end
if _ne(args.brace) then
textPart = nw('{{') .. textPart .. nw('}}')
elseif _ne(args.braceinside) then
textPart = nw('{') .. textPart .. nw('}')
end
titlePart = titlePart .. '|' .. textPart .. ']]'
if _ne(args.braceinside) then
titlePart = nw('{') .. titlePart .. nw('}')
end
return titlePart
end
function p.main(frame)
local args = getArgs(frame, {
trim = true,
removeBlanks = false
})
return p._main(args)
end
function p._main(args)
local bold = _ne(args.bold) or _ne(args.boldlink) or _ne(args.boldname)
local italic = _ne(args.italic) or _ne(args.italics)
local dontBrace = _ne(args.brace) or _ne(args.braceinside)
local code = _ne(args.code) or _ne(args.tt)
local show_result = _ne(args._show_result)
local expand = _ne(args._expand)
-- Build the link part
local titlePart = linkTitle(args)
if bold then titlePart = "'''" .. titlePart .. "'''" end
if _ne(args.nowrapname) then titlePart = '<span class="nowrap">' .. titlePart .. '</span>' end
-- Build the arguments
local textPart = ""
local textPartBuffer = "|"
local codeArguments = {}
local codeArgumentsString = ""
local i = 2
local j = 1
while args[i] do
local val = args[i]
if val ~= "" then
if _ne(args.nowiki) then
-- Unstrip nowiki tags first because calling nw on something that already contains nowiki tags will
-- mangle the nowiki strip marker and result in literal UNIQ...QINU showing up
val = nw(mw.text.unstripNoWiki(val))
end
local k, v = string.match(val, "(.*)=(.*)")
if not k then
codeArguments[j] = val
j = j + 1
else
codeArguments[k] = v
end
codeArgumentsString = codeArgumentsString .. textPartBuffer .. val
if italic then
val = '<span style="font-style:italic;">' .. val .. '</span>'
end
textPart = textPart .. textPartBuffer .. val
end
i = i + 1
end
-- final wrap
local ret = titlePart .. textPart
if not dontBrace then ret = nw('{{') .. ret .. nw('}}') end
if _ne(args.a) then ret = nw('*') .. ' ' .. ret end
if _ne(args.kbd) then ret = '<kbd>' .. ret .. '</kbd>' end
if code then
ret = '<code>' .. ret .. '</code>'
elseif _ne(args.plaincode) then
ret = '<code style="border:none;background:transparent;">' .. ret .. '</code>'
end
if _ne(args.nowrap) then ret = '<span class="nowrap">' .. ret .. '</span>' end
--[[ Wrap as html??
local span = mw.html.create('span')
span:wikitext(ret)
--]]
if _ne(args.debug) then ret = ret .. '\n<pre>' .. mw.text.encode(mw.dumpObject(args)) .. '</pre>' end
if show_result then
local result = mw.getCurrentFrame():expandTemplate{title = addTemplate(args[1]), args = codeArguments}
ret = ret .. " → " .. result
end
if expand then
local query = mw.text.encode('{{' .. addTemplate(args[1]) .. string.gsub(codeArgumentsString, textPartBuffer, "|") .. '}}')
local url = mw.uri.fullUrl('special:ExpandTemplates', 'wpInput=' .. query)
mw.log()
ret = ret .. " [" .. tostring(url) .. "]"
end
return ret
end
return p
c7307fa3959d308a2dd7fd2f5009c1ce6db3d122
THE GRENADA HANDBOOK AND DIRECTORY 1946
0
15
20
2022-03-24T18:55:38Z
74.117.87.8
0
New Entry
wikitext
text/x-wiki
'''AREA AND SITUATION'''
GRENADA, the most southerly of the windward group, situated between the parallels of 12, 30 and 11, 58 N. latitude and between 61, 20 and 61, 35 W. longitude. its is about 21 miles in length, 12 miles wide at its breadth, and contains about 120 square miles. It lies 68 miles S.S.W of St. Vincent and 90 miles north of Trinidad and between it and the former island stretches a chain of small islands called the Grenadines. The southernmost of these, embracing Carriacou, Petite Martinique, Isle of Rhonde and others , are included within the colony of Grenada. Carriacou has an area of some 13 square miles. The capital of Grenada, St. George's, is also the sit of the governor of the Windward Islands.
'''TOPOGRAPHY'''
A topographical description of the island of Grenada ( surveyed by Monsieur Pinel in 1763) by order of Government-By lieut. Daniel Patterson. The original document preserved at the Public Works Department of Grenada.
The island is divided into six parishes or Districts, the principle of which is that named '''Basse-Terre''' or '''St. George''' which contains the city, the Fort and Port. Here also lied the ordinary residence of the Governor General, and the Courts of Judicature.
The District of St. George is situated on the south part of the island, extending 15.3 miles (4.5 Leagues) along the '''Chemin Royal''' from the '''Riviere Dounce''' to the '''Riviere de Chermin.''' It had fourteen Sugar Plantations. Ten had water-mills: besides a great many Coffee Plantations; but none of these were of consequence, except three or four. All of the Coast of '''Ponte des Salines''' or '''Point Salines''' to the '''Riviere de Chermin,''' was dry barren soil, and little inhabited, neither does if afford any other water than that of Wells or Ponds. The Salt Pond produced a great deal of salt, when carefully managed.
The District named '''Quartier du Megrin''' or '''St. David''', lies towards the South-East; its coast forms several Points and some Bays capable of receiving small crafts: It extends 12.8 Miles ( Three and half leagues) from '''Riviere de Chemin''' to the '''Riviere de Crochu,''' which separates it on the North part from the District, '''Du Grand Marquis,''' there are several rivers which runs through it, and supplied Ten Sugar Plantations with sufficiency of water; there was also some considerable Coffee Plantations, and many others of less consequences as being but lately established; it is planted about four thousands paces up the hills ( 1.8Miles)
The '''Quartier Du Grand Marquis''' or '''St. Andrew's''', situated towards the East, is the most considerable District, as well for Extent, as for the Number and importance of its Plantations: it is four and half leagues long (15.3 Miles), extending from '''Riviere de Crochu''' to the '''Riviere Antione,''' which separates it on the North side from the District '''Des Sauteurs.''' Lands were granted here, 7,000 paces ( 3.31 Miles) up from the Coast, which are in general good. There were however some, from the Town of '''Grand Marquis''' to the Riviere du Crochu which were indifferent, as they have been over-wrought and these on the heights as you go towards the great pond are cold and for the most part, bad. Several rivers run through this quarter, which supply 23 Plantations with water, twelve which were considerable , on the account of their produce and income. It contains also many large Coffee Plantations
c89c706313feca59d95373cc7bc198cc7d3ff79d
21
20
2022-03-24T23:06:40Z
Abegail Thomas
31
Added History
wikitext
text/x-wiki
'''AREA AND SITUATION'''
GRENADA, the most southerly of the windward group, situated between the parallels of 12, 30 and 11, 58 N. latitude and between 61, 20 and 61, 35 W. longitude. its is about 21 miles in length, 12 miles wide at its breadth, and contains about 120 square miles. It lies 68 miles S.S.W of St. Vincent and 90 miles north of Trinidad and between it and the former island stretches a chain of small islands called the Grenadines. The southernmost of these, embracing Carriacou, Petite Martinique, Isle of Rhonde and others , are included within the colony of Grenada. Carriacou has an area of some 13 square miles. The capital of Grenada, St. George's, is also the sit of the governor of the Windward Islands.
'''TOPOGRAPHY'''
A topographical description of the island of Grenada ( surveyed by Monsieur Pinel in 1763) by order of Government-By lieut. Daniel Patterson. The original document preserved at the Public Works Department of Grenada.
The island is divided into six parishes or Districts, the principle of which is that named '''Basse-Terre''' or '''St. George''' which contains the city, the Fort and Port. Here also lied the ordinary residence of the Governor General, and the Courts of Judicature.
The District of St. George is situated on the south part of the island, extending 15.3 miles (4.5 Leagues) along the '''Chemin Royal''' from the '''Riviere Dounce''' to the '''Riviere de Chermin.''' It had fourteen Sugar Plantations. Ten had water-mills: besides a great many Coffee Plantations; but none of these were of consequence, except three or four. All of the Coast of '''Ponte des Salines''' or '''Point Salines''' to the '''Riviere de Chermin,''' was dry barren soil, and little inhabited, neither does if afford any other water than that of Wells or Ponds. The Salt Pond produced a great deal of salt, when carefully managed.
The District named '''Quartier du Megrin''' or '''St. David''', lies towards the South-East; its coast forms several Points and some Bays capable of receiving small crafts: It extends 12.8 Miles ( Three and half leagues) from '''Riviere de Chemin''' to the '''Riviere de Crochu,''' which separates it on the North part from the District, '''Du Grand Marquis,''' there are several rivers which runs through it, and supplied Ten Sugar Plantations with sufficiency of water; there was also some considerable Coffee Plantations, and many others of less consequences as being but lately established; it is planted about four thousands paces up the hills ( 1.8Miles)
The '''Quartier Du Grand Marquis''' or '''St. Andrew's''', situated towards the East, is the most considerable District, as well for Extent, as for the Number and importance of its Plantations: it is four and half leagues long (15.3 Miles), extending from '''Riviere de Crochu''' to the '''Riviere Antione,''' which separates it on the North side from the District '''Des Sauteurs.''' Lands were granted here, 7,000 paces ( 3.31 Miles) up from the Coast, which are in general good. There were however some, from the Town of '''Grand Marquis''' to the Riviere du Crochu which were indifferent, as they have been over-wrought and these on the heights as you go towards the great pond are cold and for the most part, bad. Several rivers run through this quarter, which supply 23 Plantations with water, twelve which were considerable , on the account of their produce and income. It contains also many large Coffee Plantations,, and many others of less consequences as being but lately established; it is planted about four thousands paces up the hills ( 1.8Miles)
The '''Quartier Du Grand Marquis''' or '''St. Andrew's''', situated towards the East, is the most considerable District, as well for Extent, as for the Number and importance of its Plantations: it is four and half leagues long (15.3 Miles), extending from '''Riviere de Crochu''' to the '''Riviere Antione,''' which separates it on the North side from the District '''Des Sauteurs.''' Lands were granted here, 7,000 paces (3.31 Miles) up from the Coast, which are in general good. There were however some, from the Town of '''Grand Marquis''' to the '''Riviere du Crochu''' which were indifferent, as they have been over-wrought and these on the heights as you go towards the great pond are cold and for the most part, bad. Several rivers run through this quarter, which supply 23 Plantations with water, twelve which were considerable, on the account of their produce and income. It contains also many large Coffee Plantations, and a great number of small ones. There is but one single harbor where small craft can ride in safety, as a small island shelters it from the winds, which predominate on this part of the island with such violence, as to render it dangerous for any vessel to approach the coast.
'''The Quartier des Sauteurs,''' or '''St. Patrick’s''' situated in the north part of the island, extends four leagues (13.8 Miles) along the '''Chemin Royal''' from the '''Riviere Antoine''' to the '''Riviere de Duquens''' which separates it on the west form the district '''Du Grand Pauvre'''. The lands here are very good, and all granted; but it is not commanded by any high mountains, it has only the great '''Riviere des Sauteurs''' that can supply water-mills. It contains 18 Sugar Plantations, 12 of which yield great produce, and several large Coffee Plantations; small craft may anchor in the ports of '''Des Sauteurs''' and '''Levera.'''
The '''Quartier du Grand Pauvre''' or '''St. Mark''', the smallest and least considerable in the island, is situated to the northwest, extending only two leagues (6.9 miles) from the '''Riviere du Quene''', to the '''Ravine Marans''', which separated it on the south side from the district is '''Ance Gouyaves'''. It contains six Sugar Plantations, three of which reside there are poor, and unable to defray the expenses of working the land, which is mountainous; the soil is nevertheless tolerably good.
The '''Quartier de l’Ance Gouyave''', or '''St. John''', situated to the west of the island, extends about two and a half leagues (8.6 Miles) from '''Ravina Marans''' to the '''Riviere Deuce'''. This quarter as well as the foregoing one, is but of little importance with regard to the number of its settlements : and though it is watered by several rivers , yet is contains but nine Sugar Plantations, the best of which are much less considerable than those which are on the Windward side of the Island. The land, being great intersected with mountains makes it very difficult to bring the settlements to perfection; There are only three or four Coffee or Cocoa Plantations which are of any consequence: and many of these lately planted on the heights produce very little, as the land is very cold , and requires a great deal of labor to keep it in order. The entire coast from the '''Grand Pauvre''' to the '''Basse Terre''', is of easy access, there being all along, good anchorage.
The island of Grenada is in structure a moderately eroded volcanic pile, and is somewhat mountainous. The principle point Morne Ste. Catherine (2,749 feet), rises in the northern part of the island as the centre of a massif surrounded by lesser peaks ridges. South of this massif is a low col, where Belvedere ridge crosses the island, and beyond it the land rises again into a low curving ridge – or system of ridges- running first towards the south and then bending round to the east and north-east. This contains numerous peaks and high points- Fedon’s Camp, Morne Quaqua (2,412 feet)- Mt. Sinai (2,300 Feet) and south east Mountain (2,359 feet)- and embraces several ole crater base one of which is still occupied by a lake known as Grand Etang. From the central mountains the land descends to the sea. This is not strictly any coastal plain, though there are lowlands in the north-east at Levera and in the south-west where a long peninsula runs out to Point Saline. Except in the higher parts of the mountains, slopes are for the most part sufficiently gently to permit of development of agriculture.
The Grenadines are based upon a submarine ridge which only submerged to a depth’s about 20 fathoms. The island themselves are evidently highly eroded remnants, as evidenced by the irregular and “piton”- dominated landscapes.
'''GEOLOGY'''
With the exception of a few beds of limestone’s, which are very small extent, Grenada and the Grenadines are of volcanic origin. Grenada shows clear evidence of a number of distinct phases of volcanism, but for the most part appears to be intermediate in age between St. Lucia and St. Vincent. Volcanic activity is extinct and leaves only a few cold carbonic springs its last traces. Earthquake shocks were felt in 1867 and 1888, both cases centered beneath St. George’s harbor, which is the center of an old crater. Other old craters are still plainly visible near Grand Etang and at Lake Antoine. Much of the erupted matter consisted of massive lavas- basalt, augite-andesite and hornblende-andesite- which occupy the centre is the island. Coastally the deposits are agglomerate, ash and turf. Small deposits of marine coralliferous limestone sod Pleistocene age occur in the north at an elevation of 600 feet.
It is thought possible that Grenada may have been connected to the mainland of South Americas during the Pliocene times.
The Grenadines consist of fine-grained volcanic ashes which were originally laid down under the sea. Carriacou is capped about 600 feet with similar to those of Grenada, indicating a Pleistocene submergence which must completely have drowning these islands. The Grenadines are very deeply eroded. The surface ashes have been worn away to expose a number of residual phases whose hard lava cores stand up as pitons.
The island of Grenada is eroded to a moderate extent. The areas have reached based level and slopes have been reduced to intermediate erosional stage of moderate steepness.
The agricultural soils have been studied by Hardy, McDonald and Rodriguez (The Cacao soils of Grenada 1932). Red earth occurs predominantly in the centre of the island and shoal soil around the coast; these both are the result of intense weathering of volcanic rock materials, the former under a region of high rain-falls and the latter under one of low. The profile of the red earth shows a dark brown, humic surface horizon grading imperceptibly into the bright red, clayey parent soil, which is highly acidic, remarkably crumbly, friable and porous down to a great dept. A shoal soil has a A-horizon consisting of a dark humic clay, overlying at quite a shallow depth a B-horizon that has become sealed up hard by illuviation. Neither of these two types is properly a fertile soil, but it would appear that un most areas in Grenada weathering has not proceeded to its final stage-nothing like as far, for example, as in St. Lucia –and the soil are by no means as intractable as in that island. The well-cultivated aspect of Grenada testifies to the productivity of the land.
'''HISTORY'''
'''1498'''
The existence of Grenada was brought to the knowledge of the Old world by Christopher Columbus, who sighted the Island on August 15, 1498, but did not touch at it. On his voyage, which began on May 30, 1498, the first land made by the great navigator was Trinidad, on July 31. He entered the Gulf of Paria from the south, and, after cruising about the shores of Trinidad and the mainland, he passed through the Boca del Dragon, the northern outlet of the gulf, on the afternoon of August 14. The next morning , being the feast of assumption of the virgin, while standing to the northward, he saw to the north-east, many leagues distant, two islands, which he called ‘Assumption’ and ‘ Conception’ the former being Tobago and the latter Grenada. He then preceded westward, discovering Margarita and Cubagua while en route for Hispaniola.
For more than 100 years after its discovery by Columbus the aboriginal inhabitants, who were of the Carib race, were left in undisturbed possession of the island, to which they are said to have been attracted in great numbers on account of the superior hunting and fishing obtainable there as compared with the adjacent islands. The Spaniards were, no doubt , fully occupied with their more important conquests on the American continent and the larger islands of the Caribbean Sea , and as yet other European nations had not joined in the race for acquisition of new territory among fertile beautiful lands.
'''1609'''
According to a document in the British Museum, written by Major John Scott, historiographer to Charles ii, the first attempt to colonise Grenada was made by a company of London merchant, who equipped three ships and dispatched them with that objective. They reached Grenada on April 1, 1609, and landed 208 colonists, but these were persistently hunted by the Caribs that they were compelled to abandon the settlement and return to England, what was left them arriving in London on December 15, 1609.
'''1626'''
About the year 1626 both the English and French appear to have set covetous eyes on the unappropriated island of Grenada, and we find it included among the theoretical possessions of the French ‘Company of the Islands of America’, founded in that year by Cardinal Richelieu, while in the following year it was included in the general grant of the Caribbees made to the Earl of Carlisle by King Charles I. Neither nation, however, took any further steps until 1638, when a Frenchman named Polney attempted to effect a landing, but was driven off by the Caribs, who thus secured further immunity from attack for twelve years.
25ed2230d18ab5990bdff76d0c5b026a719e70a4
23
21
2022-03-30T02:08:18Z
Abegail Thomas
31
Added detail to the 17th Century up to 1794
wikitext
text/x-wiki
'''AREA AND SITUATION'''
GRENADA, the most southerly of the windward group, situated between the parallels of 12, 30 and 11, 58 N. latitude and between 61, 20 and 61, 35 W. longitude. its is about 21 miles in length, 12 miles wide at its breadth, and contains about 120 square miles. It lies 68 miles S.S.W of St. Vincent and 90 miles north of Trinidad and between it and the former island stretches a chain of small islands called the Grenadines. The southernmost of these, embracing Carriacou, Petite Martinique, Isle of Rhonde and others , are included within the colony of Grenada. Carriacou has an area of some 13 square miles. The capital of Grenada, St. George's, is also the sit of the governor of the Windward Islands.
'''TOPOGRAPHY'''
A topographical description of the island of Grenada ( surveyed by Monsieur Pinel in 1763) by order of Government-By lieut. Daniel Patterson. The original document preserved at the Public Works Department of Grenada.
The island is divided into six parishes or Districts, the principle of which is that named '''Basse-Terre''' or '''St. George''' which contains the city, the Fort and Port. Here also lied the ordinary residence of the Governor General, and the Courts of Judicature.
The District of St. George is situated on the south part of the island, extending 15.3 miles (4.5 Leagues) along the '''Chemin Royal''' from the '''Riviere Dounce''' to the '''Riviere de Chermin.''' It had fourteen Sugar Plantations. Ten had water-mills: besides a great many Coffee Plantations; but none of these were of consequence, except three or four. All of the Coast of '''Ponte des Salines''' or '''Point Salines''' to the '''Riviere de Chermin,''' was dry barren soil, and little inhabited, neither does if afford any other water than that of Wells or Ponds. The Salt Pond produced a great deal of salt, when carefully managed.
The District named '''Quartier du Megrin''' or '''St. David''', lies towards the South-East; its coast forms several Points and some Bays capable of receiving small crafts: It extends 12.8 Miles ( Three and half leagues) from '''Riviere de Chemin''' to the '''Riviere de Crochu,''' which separates it on the North part from the District, '''Du Grand Marquis,''' there are several rivers which runs through it, and supplied Ten Sugar Plantations with sufficiency of water; there was also some considerable Coffee Plantations, and many others of less consequences as being but lately established; it is planted about four thousands paces up the hills ( 1.8Miles)
The '''Quartier Du Grand Marquis''' or '''St. Andrew's''', situated towards the East, is the most considerable District, as well for Extent, as for the Number and importance of its Plantations: it is four and half leagues long (15.3 Miles), extending from '''Riviere de Crochu''' to the '''Riviere Antione,''' which separates it on the North side from the District '''Des Sauteurs.''' Lands were granted here, 7,000 paces ( 3.31 Miles) up from the Coast, which are in general good. There were however some, from the Town of '''Grand Marquis''' to the Riviere du Crochu which were indifferent, as they have been over-wrought and these on the heights as you go towards the great pond are cold and for the most part, bad. Several rivers run through this quarter, which supply 23 Plantations with water, twelve which were considerable , on the account of their produce and income. It contains also many large Coffee Plantations,, and many others of less consequences as being but lately established; it is planted about four thousands paces up the hills ( 1.8Miles)
The '''Quartier Du Grand Marquis''' or '''St. Andrew's''', situated towards the East, is the most considerable District, as well for Extent, as for the Number and importance of its Plantations: it is four and half leagues long (15.3 Miles), extending from '''Riviere de Crochu''' to the '''Riviere Antione,''' which separates it on the North side from the District '''Des Sauteurs.''' Lands were granted here, 7,000 paces (3.31 Miles) up from the Coast, which are in general good. There were however some, from the Town of '''Grand Marquis''' to the '''Riviere du Crochu''' which were indifferent, as they have been over-wrought and these on the heights as you go towards the great pond are cold and for the most part, bad. Several rivers run through this quarter, which supply 23 Plantations with water, twelve which were considerable, on the account of their produce and income. It contains also many large Coffee Plantations, and a great number of small ones. There is but one single harbor where small craft can ride in safety, as a small island shelters it from the winds, which predominate on this part of the island with such violence, as to render it dangerous for any vessel to approach the coast.
'''The Quartier des Sauteurs,''' or '''St. Patrick’s''' situated in the north part of the island, extends four leagues (13.8 Miles) along the '''Chemin Royal''' from the '''Riviere Antoine''' to the '''Riviere de Duquens''' which separates it on the west form the district '''Du Grand Pauvre'''. The lands here are very good, and all granted; but it is not commanded by any high mountains, it has only the great '''Riviere des Sauteurs''' that can supply water-mills. It contains 18 Sugar Plantations, 12 of which yield great produce, and several large Coffee Plantations; small craft may anchor in the ports of '''Des Sauteurs''' and '''Levera.'''
The '''Quartier du Grand Pauvre''' or '''St. Mark''', the smallest and least considerable in the island, is situated to the northwest, extending only two leagues (6.9 miles) from the '''Riviere du Quene''', to the '''Ravine Marans''', which separated it on the south side from the district is '''Ance Gouyaves'''. It contains six Sugar Plantations, three of which reside there are poor, and unable to defray the expenses of working the land, which is mountainous; the soil is nevertheless tolerably good.
The '''Quartier de l’Ance Gouyave''', or '''St. John''', situated to the west of the island, extends about two and a half leagues (8.6 Miles) from '''Ravina Marans''' to the '''Riviere Deuce'''. This quarter as well as the foregoing one, is but of little importance with regard to the number of its settlements : and though it is watered by several rivers , yet is contains but nine Sugar Plantations, the best of which are much less considerable than those which are on the Windward side of the Island. The land, being great intersected with mountains makes it very difficult to bring the settlements to perfection; There are only three or four Coffee or Cocoa Plantations which are of any consequence: and many of these lately planted on the heights produce very little, as the land is very cold , and requires a great deal of labor to keep it in order. The entire coast from the '''Grand Pauvre''' to the '''Basse Terre''', is of easy access, there being all along, good anchorage.
The island of Grenada is in structure a moderately eroded volcanic pile, and is somewhat mountainous. The principle point Morne Ste. Catherine (2,749 feet), rises in the northern part of the island as the centre of a massif surrounded by lesser peaks ridges. South of this massif is a low col, where Belvedere ridge crosses the island, and beyond it the land rises again into a low curving ridge – or system of ridges- running first towards the south and then bending round to the east and north-east. This contains numerous peaks and high points- Fedon’s Camp, Morne Quaqua (2,412 feet)- Mt. Sinai (2,300 Feet) and south east Mountain (2,359 feet)- and embraces several ole crater base one of which is still occupied by a lake known as Grand Etang. From the central mountains the land descends to the sea. This is not strictly any coastal plain, though there are lowlands in the north-east at Levera and in the south-west where a long peninsula runs out to Point Saline. Except in the higher parts of the mountains, slopes are for the most part sufficiently gently to permit of development of agriculture.
The Grenadines are based upon a submarine ridge which only submerged to a depth’s about 20 fathoms. The island themselves are evidently highly eroded remnants, as evidenced by the irregular and “piton”- dominated landscapes.
'''GEOLOGY'''
With the exception of a few beds of limestone’s, which are very small extent, Grenada and the Grenadines are of volcanic origin. Grenada shows clear evidence of a number of distinct phases of volcanism, but for the most part appears to be intermediate in age between St. Lucia and St. Vincent. Volcanic activity is extinct and leaves only a few cold carbonic springs its last traces. Earthquake shocks were felt in 1867 and 1888, both cases centered beneath St. George’s harbor, which is the center of an old crater. Other old craters are still plainly visible near Grand Etang and at Lake Antoine. Much of the erupted matter consisted of massive lavas- basalt, augite-andesite and hornblende-andesite- which occupy the centre is the island. Coastally the deposits are agglomerate, ash and turf. Small deposits of marine coralliferous limestone sod Pleistocene age occur in the north at an elevation of 600 feet.
It is thought possible that Grenada may have been connected to the mainland of South Americas during the Pliocene times.
The Grenadines consist of fine-grained volcanic ashes which were originally laid down under the sea. Carriacou is capped about 600 feet with similar to those of Grenada, indicating a Pleistocene submergence which must completely have drowning these islands. The Grenadines are very deeply eroded. The surface ashes have been worn away to expose a number of residual phases whose hard lava cores stand up as pitons.
The island of Grenada is eroded to a moderate extent. The areas have reached based level and slopes have been reduced to intermediate erosional stage of moderate steepness.
The agricultural soils have been studied by Hardy, McDonald and Rodriguez (The Cacao soils of Grenada 1932). Red earth occurs predominantly in the centre of the island and shoal soil around the coast; these both are the result of intense weathering of volcanic rock materials, the former under a region of high rain-falls and the latter under one of low. The profile of the red earth shows a dark brown, humic surface horizon grading imperceptibly into the bright red, clayey parent soil, which is highly acidic, remarkably crumbly, friable and porous down to a great dept. A shoal soil has a A-horizon consisting of a dark humic clay, overlying at quite a shallow depth a B-horizon that has become sealed up hard by illuviation. Neither of these two types is properly a fertile soil, but it would appear that un most areas in Grenada weathering has not proceeded to its final stage-nothing like as far, for example, as in St. Lucia –and the soil are by no means as intractable as in that island. The well-cultivated aspect of Grenada testifies to the productivity of the land.
'''HISTORY'''
'''1498''' The existence of Grenada was brought to the knowledge of the Old world by Christopher Columbus, who sighted the Island on August 15, 1498, but did not touch at it. On his voyage, which began on May 30, 1498, the first land made by the great navigator was Trinidad, on July 31. He entered the Gulf of Paria from the south, and, after cruising about the shores of Trinidad and the mainland, he passed through the Boca del Dragon, the northern outlet of the gulf, on the afternoon of August 14. The next morning , being the feast of assumption of the virgin, while standing to the northward, he saw to the north-east, many leagues distant, two islands, which he called ‘Assumption’ and ‘ Conception’ the former being Tobago and the latter Grenada. He then preceded westward, discovering Margarita and Cubagua while en route for Hispaniola.
For more than 100 years after its discovery by Columbus the aboriginal inhabitants, who were of the Carib race, were left in undisturbed possession of the island, to which they are said to have been attracted in great numbers on account of the superior hunting and fishing obtainable there as compared with the adjacent islands. The Spaniards were, no doubt , fully occupied with their more important conquests on the American continent and the larger islands of the Caribbean Sea , and as yet other European nations had not joined in the race for acquisition of new territory among fertile beautiful lands.
'''1609''' According to a document in the British Museum, written by Major John Scott, historiographer to Charles ii, the first attempt to colonize Grenada was made by a company of London merchant, who equipped three ships and dispatched them with that objective. They reached Grenada on April 1, 1609, and landed 208 colonists, but these were persistently hunted by the Caribs that they were compelled to abandon the settlement and return to England, what was left them arriving in London on December 15, 1609.
'''1626''' About the year 1626 both the English and French appear to have set covetous eyes on the unappropriated island of Grenada, and we find it included among the theoretical possessions of the French ‘Company of the Islands of America’, founded in that year by Cardinal Richelieu, while in the following year it was included in the general grant of the Caribbees made to the Earl of Carlisle by King Charles I. Neither nation, however, took any further steps until 1638, when a Frenchman named Polney attempted to effect a landing, but was driven off by the Caribs, who thus secured further immunity from attack for twelve years.
'''1650''' In 1650, M.M Houel and Du Parquet, shareholders of the French company above referred to purchased Martinique, St. Lucia and Grenada from the company for sum equivalent to 1,600''i.''and, after establishing himself at Martinique, Da Parquet turned his attempts to Grenada, where he landed in June of that year with a strong following of 200 adventures. Whether they were overawed by the force which accompanied him, or whether they their simple minds were attracted by the by the trinkets and gowgaw of which he made the liberal presents, the Caribs made no resistance to Du Parquet settlement, and, according to Peres Du Terte, the island was ‘fair chase’ for ‘some knives and hatchets and a large quantity of glass beads, besides two bottles of brandy for the chief himself.
The colony was founded on a strip of land which in those days and certainly for fifty-five years afterwards, projected from the cliff known as ‘Ballast Ground’ on the eastern side of the entrance to St. George’s harbor, across the mouth of the ‘Lagoon’, which was not as now, an arm of the sea, but a deep lake of brackish water formed by the rivulets on the ‘Springs’ land and which overflowed its bar of sand after heavy rain, just as the embouchures of others streams in the island now do. Upon this site the French erected their huts and large wooden building brought in sections with them from Martinique, which they surrounded with stockade and defended with two canons, as a fortress within which they might retire if they were attacked by the Caribs. In the front of the settlement on the west was excellent anchorage for large ships, particularly in the inlet between the ‘Spout’ and the opposite point at the north. At the present day there is hardly 3 feet along this part of the harbor, and the site of the old town is a coral reef across the mouth of the Lagoon. There is no record in the colony of the convulsion which must have caused its present connection, but there can be little doubt that the Carenage was once the crater of a volcano, which, as will be seen, so lately as in 1807 and in 1902 gave proof of its existence.
'''1651''' After establishing his colony Du Parquet left a relation of his named Le Compte, to govern Grenada on his behalf, but, In February 1651 the Caribs, probably recognizing the danger to which they had exposed themselves by their too easy yielding of a footing on the island to the French, began hostilities, and Du Parquet being determined not to lose his hold on the island, sent Le Compte a reinforcement of 300 men, with instructions to extirpate the aborigines. The French settlement was on the southern sea board, which they term Basseterre, the remainder of the island being designated the Cabesterre. Far from Le Compte at once obeying D Parquet orders to wipe out the Caribs, he gave them yet another chance. Only when the aborigines had again exhibited their perfidy and apparent inability to keep the peace and stop killing those who they had ceded the island did Le Compte a have recourse to extreme measures. He then devoted himself to his horrible task with zeal and energy, and his unhappy antagonists, not being able to cope with his followers on account of the superior weapons of the latter area of their armor, which effectively protected them from the wretch flint hatchets and wooden spears, succumbed in the unequal struggle were completely driven out of Basseterre. The last stand they made at this part of the campaign was at a precipice on the extreme north of the island , called by the French, in memory of the awful tragedy there enacted, ‘Le Morne des Sauteurs, or ‘Leapers’ Hill’, a name which, corrupted locally into ‘Sotiare,’ the town there located bears to the present day. A French Narrator this describes the incident: ‘ The savages were being hard pressed, retired to the summit of a small promontory, which was surrounded by frightful precipices and accessible by only a narrow and difficult path, the opening to which they had been extremely careful to keep concealed. The French, having succeeded at last in discovering the secret passage, broke in upon them by surprise. They fought vigorously, but the savages were completely defeated, and those who remained, about forty in numbers precipitated themselves from the top of the rock rather than surrender.
This closed the first part of the war of extermination, the Caribs, however, the remaining in possession of Cabesterre, where at first the French seemed disposed to leave them; but, burning with natural desire to avenge their wrongs, they soon broke up the temporary peace by raids on the settlements, and by killing all of the colonist who fell their way. Le Compte, therefore, determined to make an end to them, and, collecting his forces, marched in Basseterre, and day break surprised their head quarters, where the greatest number of them was assembled, and put them to the sword without regard to age or sex. Following his success with vigor Le Compte carried fire and sword throughout Cabesterre, and reduced the Caribs to such a small number that they never again disturbed the peace of the colony. Although few were in existence in St. Marks valley and other parts of the Cabesterre as late as 1705.
The complete subjugation of the island was, however, accompanied by the death of Le Compte, who was drowned when returning to the Basseterre from his victorious expedition. He was succeeded in the Government by M. Louis de Cacqueray, Sieur de Val-meniere, who experienced some trouble in assuming the reins of Government, as there were several officers among the colonist who conceived they had a better right to the post. These resorted to arms, but De Valmeniere was victorious and the leader of the opposition party, Lefont, only escaped execution by suicide. His adherents were banished, but their properties were not confiscated.
'''1657 ''' The new Governor appears to have conducted the affairs of the infant colony with much tact and judgment, and under his direction made substantial progress for some time. Du Parquet, having suffered much in his purse of expenses of the Carib war, found it necessary to sell the island, and in 1657 it became the property of the Comte de Cerillac, who paid for it about 1,890''I''. The Governor appointed by the new proprietor is said to be ‘a man of brutal manners’, and he rendered himself intolerable to the colonists, accustomed to as they were to the mild and genial sway of De Val-meniere. The more respectable inhabitants emigrated to Martinique, a proceeding which so irritated the Governor that his tyranny became unbearable, and the colonists rose in arms against him, effected his capture, put him through a form of trial, and condemned him to be hanged. The wretched man succeeded, by claiming noble origin, in getting sentence of hanging changed to beheading, but at the last moment, finding that they had no skillful executioner, the rebels shot him.
'''1664''' An Order in the Council was made by the King of France on April 17, 1664, transferring the rights of the ‘Company of the island of America’ to the new French West Indies Company, and M. de Val-meniere was appointed special Commissioner to give effect to the Order. He arrived in Grenada on November 22, and found the colonist in great distress after recent events. He readdressed their grievances, made the Comte de Cerillac leave the island, appointed M. Vincent to the Governor, and departed on November 29.
'''1665''' In 1665 the Comte de Cerillac appears to have been paid his rights in Grenada 10,000 crowns.
'''1666''' In 1666 an armed expedition was sent by M. Vincent from Grenada to Trinidad, Where it is said to have captured the fort in a ‘discreditable ruse’
'''1674 ''' Upon the dissolution of the French West Indian Company, in the royal edict in December 1674, Grenada passed under the domination of the French crown.
'''1700 ''' For the next eighty-eight years the French colony, notwithstanding many wars and rumors around it , appears to have enjoyed the blessings of peace and a measure of prosperity, which is evidenced by the fact that and an enumeration of the people and their properties taken in the 1700 showed a population of 257 whites 53 Free colored persons, and 525 slaves who were employed on 3 Sugar Estates and 52 Indigo plantations, Their livestock consisting of horses and 569 cattle; while a similar census in 1,753 showed the following increases: Population – 1,263 whites, 175 free colored persons, 11,991 Slaves; live-stock- 2,298 horses and mules, 2,556 cattle, 3,278 sheep, 902 goats, 331 hogs; cultivation 83- sugar estate, 2,725,600 coffee trees, 150,300 cocoa trees and 800 cotton trees. Owing, however in the absence of authentic records for this period, very little can be stated of the colony’s history in those years.
The condition of the colon in the early years of the eighteenth century me be gathered from the following remarks of an eye witness, Père Labat, a priest of the Dominican Order, who spent five days on the island September, 1700, and who seems to have a poor opinion of the colonizing capacity of his compatriots. He writes: ‘ The English know better than we how to profit by natural advantages . If Grenada belonged to them, it would long since have changed its aspect, and have become a rich and powerful colony whereas, up to the present time, we have not reaped and of the benefits which ought to have been derived from it, and after a many years of possession we behold it still no better than it was when M. Du parquet purchased it from the savages.’
'''1705''' In 1705, M. De Bellair bring the Governor, the town was removed from its original site to the promontory on the western side of the harbor, where it now stands, and in that and the following year Fort George was built from the plans and under direction of M. de Caillus, ‘ Engineer-General of the American Islands and Territory Firma’. A map by this officer showing the town and fort, the site of the old town appears to have been Pot Louis, and the new town was styled Fort Royal, probably after the erection of the protecting fort, and retained that name up to the first English occupation in 1763, when it was named St. George’s and the citadel became Fort George.
'''1714 ''' The cultivation of cocoa, coffee and cotton was commenced in 1714, in which year it is recorded that vessels trading between Martinique and the Spanish Main began to call at Grenada for water and supplies, giving a great impetus to trade. It is worthy of note that tobacco which was grown on the island at that period is said to have been of such superior quality that is realized double and treble the price of that grown in the other islands.
'''1739''' In 1738, a hospital for the care and treatment of the sick and indigent persons was established In St. George’s, near the St. John’s River, and endowed with proceeds of the cultivation of the adjoining sugar estates.
'''1756 ''' In 1756 war was declared between Great Britain and France.
'''1761''' Admiral Rodney arrived in the West Indies at the close of 1761 with fleet of 18 ships of the line, and landed forces under the command of General Monekton, of 10,000 men.
'''1762 ''' Upon the surrender of Martinique to him to February 4, 1762 he dispatched a squadron to Grenada under Commodore Swanton, whereupon the French surrendered on capitulation to that officer, and the passed under the British dominion, the administration of the Government being temporary vested in Lieutenant-Governor George Scott of Dominica.
'''1763 ''' In the following year Grenada and the Grenadines were, by the 9<sup>th</sup> article of the treaty of Peace signed at Paris on February 10, ceded to Great Britain, and on October 7, by Royal Proclamation of George III, it was announced that letters patent had been issued creating the Government of Grenada, ‘comprehending the island of that name, together with the Grenadines, and the islands of Dominica, St. Vincent and Tobago,’ and providing for Councils and Assemblies of the representative of people therein, ‘ in such manner an form as is used and directed in those colonies , and provinces of America’ then under the Government of the British Crown; empowering also the legislature so created to pass laws as ‘near as may be agreeable to the laws of England,’ and authorizing the Governor to constitute courts of justice in the colonies, with right to appeal to the Privy Council of Great Britain. It should be here be noted that at the time of the cession the French were allowed to remove all public documents to Martinique, so that there are no records in the colony dating before 1763. This proceeding appears to have been provided for by the 22<sup>nd</sup> article of the Treaty of Paris.
'''1764 ''' It was not until December 13, 1764 that the first Governor, General Robert Melvill, arrived in Grenada. He at once, under his instructions for the king, created a General Council for all the Colonies comprised within his Government, declared that the laws of Great Britain were in force in Grenada ‘as far as the nature and circumstances of the colony will admit,’ and enacted certain ordinances with the advice of his Council. Under the authority of royal letters patent dated July 20, 1764, he imposed an export duty of 4 ½ per cent on the value of produce exported, to be paid to the British Government in lieu of the duties formally paid by the colonist to the King of France, a proceeding which was strenuously opposed by the inhabitants. His original instructions were to convene one General Assembly for all of the islands of his Government, but not meeting with the support of the other colonies in this project,, Dominica being the first to protest, he established a House of Assembly for Grenada and the Grenadines, consisting of twenty-one members, and later on created similar bodies in the other colonies. It is to be noted that the new French subjects were allowed to vote at elections.
'''1766 ''' The first session of Grenada House was opened April 15, 1766, but its career was brief and inglorious, for on April 25 it passed its first Bill, ‘ for the better government of slaves, &c.’ which failed to pass the Council, and a legislative conflict ensued, which ended the House claiming the right to adjourn without the Governor’s leave, as required by the royal instructions and it was thereupon dissolved on May 21, having existed thirty seven days, and new House of Assembly was convened on October 15. A severe earthquake destroyed several sugar works this year, and cause enormous landslides, so that it was impossible for some time to ride around the island.
'''1767 ''' On March 19, 1767, The General Council was abolished so far Grenada was concerned, and a Council for Grenada alone was established by direction of the Home Government; a similar step was taken in due course with respect to each of the other colonies of the Grenadines Government. It became Necessary in this course in the course of the year to deposit troops against the runaway slaves, large number elected and made raids on the Plantation and settlers, and inconsequence of the necessity for providing for the numerous prisoners taken, attention was given to the inadequacy of the old French prison, and the erection of the old building known as the Old Common Gaol in St. George’s was commence upon the site of the prison. On March 17 , of this year, an armed schooner of Grenadian Customs( 8 guns and 12 men) captured a French smuggling vessel ( 10 guns and 18 men) after a hard fight.
'''1768 ''' On July 26, 1768, Ulysses Fitzmaurice, Lieutenant – Governor of St. Vincent, assumed the Government both General Mevill and Lieutenant- General Gore, the Lieutenant- Governor, being absent from the colony. General Melvill did not resume the Government until 1770. A hurricane is said to have visited the island on August 12, 1768, but it must have been very mild and have done very little damage as there is no official record of it.
''' ''' On December 31 the constitution of the Legislative Assembly was altered by direction of the Home Government, the number of members being increased to twenty-four and the quorum fixed a eleven; it was further provided that three of the French inhabitants who had taken the oath of allegiance to the King of England might be elected to the House, and they were to be allowed, upon election, to refuse, if they were Roman Catholics, to subscribe to the ‘Test’ as the disavowal of belief in the doctrine of Transubstantiation was called- a most liberal proceeding, regard being had to the spirit of times. These instruction, however, lead to more bitter dissensions in the colony, and, as the king refused to resolve them, the more zealous Protestants among the colonists retaliated by not serving in the Legislature, so that the conduct of the public affairs for many years was the most difficult and complicated, and the progress id the colony was seriously retarded.
'''1770 ''' In 1770 a small red ant ( ''Fornica omnivore,L.)'' made its appearance at Petit Havre, now known as Woodford, and, rapidly spreading over the island, severally damaged for the next ten years the sugar-cane cultivation, and lime, lemon and orange trees. This ants had previously appeared in Barbados and Martinique, and was probably imported to Grenada from the latter place from smugglers. An eye witness thus describes the plague: ‘Their numbers were incredible. I have seen the roads colored with them for miles together and so crowded were they were in places that the print of the horse’s feet would appear for a moment or two, until filled up the surrounding multitude.
'''1771 ''' In March 1771 General Melvill was succeeded in the general government of the islands by Brigadier- General Leybourne and on December 27 the town of St. George’s, then consisting of woods and houses was completely destroyed by fire, the damage done being estimated at 200,000''Ꙇ'' currency. A census taken this year gave return of 1,661 whites, 415 free colored persons, and 26,211 slaves. Dominica was separated from the Government of Grenada at this date, and created a separated Government under the administration of Sir William Young.
'''1774 ''' Lord Mansfield, Chief Justice of England, pronounced judgment against the Crown in Michaelmas Term, 1774, in the matter of the imposition of the 4 ½ per cent export duty, which was accordingly abolished, to the great joy of the colonists. The road to Grenville from St. George’s, by way of the Grand Etang, was commenced this year.
'''1775 ''' General Leybourne died at St. Vincent in April 1775 and the Government devolved on Lieutenant- Governor Young of Tobago. On November 1, the greater part of the town of St. George’s was again destroyed by fire, the damage this time being estimated at 500,000''Ꙇ'' currency. In consequence of this second fire a stringent Act was passed by the Legislature with respect to the erection of future buildings in town, which were consequently reconstructed of brick and covered with tiles.
'''1776 ''' In 1776, St. Vincent was created a separate Government, the Government of Grenada being limited to Grenada, The Grenadines and Tobago, and Sir George (afterward Lord) McCartney was appointed Governor-in-chief.
'''1778 ''' An Act was passed in 1778 providing that if the Home Government would establish a naval dock and dockyard at St. George’s the colony would give a considerable amount of slave labor and materials towards work; but nothing came of the liberal offer, and in the following year the colony passed out of the British into French hands.
''' ''' The War of American Independence, began in 1775, had in 1778 involved Great Britain in war with France, and in April of that year a large French fleet under the Comte d’Estaing proceeded to New York, Whence after some fighting with the English vessels along the American coasts, he sailed at the end of the year to the relief of St. Lucia, then exposed to attacks from the British under Admiral Barrington and Brigadier- General Meadows. Here he was repulsed by the sea and land, and was obliged on December 30 to leave the island to its fate. He retired to Martinique, was he kept by Admirals Byron and Barrington on the defense for the next five months, during which time, however, he was successfully reinforced by ships and men under Comte de Grasse and M. de LaMotte-Piquet. In June 1779 the British fleets appear to have been compelled to raise their blockade of the French commander by the necessity for protecting a rich convoy of merchantmen which had assembled at St. Kitts and D’Estaing immediately made a dash for St. Vincent, which capitulated to him on June 18. Thence, flushed with success, he sailed to Grenada with his whole fleet of 25 ships of the line and 10 frigates, and with 10,000 troops, arriving there July 2.
At this junction the entire British force in the colony consisted of 540 men, of whom only 90 were regular soldiers, the remainder being militia and volunteers for ships in the harbor, who had been got together by the special exertions of the Governor, Lord MaCartney, a vote of thanks to whom, for his zeal and energy in the preparation for the defense of the island, was the last action of the House of Assembly. With these scanty forces Lord MaCartney made a brilliant defense; but D’Estaing, having on the evening of his arrival landed a strong force under Count Dillon at Molinier Bay, marched inland, and made a turning movement on St. George’s. After a hard struggle and heavy loss, he carried by assault on the night of the 3<sup>rd</sup> the works on Hospital Hill, which command the town and Fort George, to which the British thereupon retreated to the hurry of their departure. Leaving the guns unspiked. They were at daybreak, next morning directed against Fort George, and the gallant defenders had no alternative but to surrender on the 4<sup>th</sup>, the victor having dictated such insolent terror when the garrison offered to capitulate that the Governor preferring the former course. D’Estaing, who is said to have had a private grudge against the British having been the subject of stricture from the officers of the British army in consequence of having broken his parole in the previous war, there upon gave up St. George’s to plundered by his troops, and sunk nearly all of the vessels then anchor in the Carenage, a well- directed fire from which( especially from H.M.S ‘York’) during the assault on Hospital Hill, had seriously retarded his operations.
At daybreak on July 6, Admiral Byron made his appearances with a squadron off St. George’s, too late to save the colony; but, notwithstanding that his force was far inferior to that of the French be bravely attached them, with the result that D’Estaing, although wounded, which so dispirited him that he retired during the night under the shelter of the guns of St. George’s. As no attempt was made the following day to attack the British squadron, which although much damaged by the previous day’s fighting, was drawing up to give battle, and as the recapture of the island was impossible with his inferior force, Admiral Byron retired to St. Kitts.
Grenada was thus once more became an appanage Of the French Crown, and was held as such for the next four and a half years, during which time it appears to have been ruled in the most despotic manner by Comte de Durat as Governor and the British colonist were solely oppressed.
The authentic records in the colony of the occurrence of this period are very scant, as the French were allowed in 1783 to remove their documents to Martinique, and many of the British records disappeared about the same time, being probably lost or destroyed during the sack of the town and in the unsettled state of the colony.
Directly after their capture the of the island the French, realizing how seriously their advance upon St. George’s and their occupation of the fortification on Hospital hill would have been embarrassing if forts had been in existence in Richmond Hill proceeded to forcibly appropriate the Mount George estate, the property of Honorable William Lucas, and began the erection o a fort there.
'''1780''' On October 10, 1780 Grenada, in common with most of other West Indian Islands, was visit by a hurricane, but it was no so severely felt there as in others, and had one result of great benefit to the colony, as the heavy rainfall destroyed the sugar ants which, in defiance of all efforts to eradicate it, had ravaged the crops of the island for the previous ten years. Nineteen Dutch Ships fully laden with cargo, are said to have been stranded and been destroyed by this cyclone at Grenada.
'''1781''' In 1781 M. Roumé de St. Laurent, a Grenada planter, conceived the idea of persuading the Spanish Government to allow foreign immigration into Trinidad, which was then strenuously prohibited by Spain, and having attained his object in 1783, there was great influx from Grenada, and the other French islands of the French colonists into that beautiful island, and at that time colonized to only a few Spaniards.
''' ''' By the 8<sup>th</sup> article of the Treaty of Versallies, signed on September 3, 1783, Grenada and the Grenadines were restored to Great Britain, and in January 1784, Lieutenant- Governor Mathew arrived with a commission as Captain-General and the Governor-in –Chief ‘in and over the island of Grenada, and such of the Islands commonly called the Grenadines to the southward of the island of Carriacou, Including that island, and lying between the same and Grenada.’ This de-limitation of the colony is still in force. His intentions included the revival of the Legislature and Courts of Justice on the lines laid down for the Governor Melvill in 1768. The new Governor took prompt steps in those matters, an in re-establishing the Assembly took occasion to revive the privileges formerly granted to the French Roman Catholic inhabitants. The Legislature, on being convened, proceeded to purchase the Mount George estate from the Hon. William Lucas, and to the make liberal grants of slave labor and materials towards the erection of fortification on that part of the estate called Richmond Hill, which commands the town of St. George’s on the east, and its approaches from the east and south. They also voted the sum 20,000''Ꙇ'', to join the body of water known as the ‘Lagoon’ in the inner harbor of St. George’s, but the project was never carried out. The first newspaper in Grenada was published in January of 1784, under the title of ‘The Grenada Chronicle.’
'''1787 ''' The colony was honored in April 1787 by a visit from Prince William Henry, the third son of George III, and afterwards King William IV. The young prince was serving as a naval officer on the frigate ‘Solebay’ at the time, and he was sumptuously entertained by the islanders, upwards of 3,300''Ꙇ'' currency being expended for the purpose. And address was presented to him by the Legislature, and in his reply His Royal Highness referred to the island as ‘the first to be attacked in war on account of her riches and the harbor she possesses, which affords so much shelter in the hurricane months.
''' ''' St. George’s was made a free port in this year by the Imperial Act 27 Geo. III., cap.27. The produce exported in 1787 was 175,548 cwt. Of sugar, 670,390 gallons of rum, 2,716 cwt. of cocoa, 2,062,427 lb cotton, and 2,810 lb indigo, stated to be worth in all ( including other articles, such as hides, wood ,etc) 614,908''Ꙇ,''and employing for its transport 188 ships of 25,764 tonnage.
'''1790''' The year 1790 witnessed the arrival on November 28 of Dr. Thomas Coke, a Wesleyan missionary, with the object of planting a mission station of the Methodist body in the colony. This gentle-man afterwards wrote a history of the West Indies, which much labor and research, although his dates of events in the early history of Grenada are sadly inaccurate.
'''1792''' On May 15, 1792, there was another severe fire in St. George’s caused by the burning of a vessel in the Carenage, laden with rum, and it destroyed about one-third of the town. A new Election Act was passed u the course of the year abrogating the privileges hither to granted to Roman Catholics by requiring all members of the Legislature to subscribe to the ‘Test’ thus virtually excluding Catholics.
''' ''' In March of this year, Sir William Young, Bart. M.P spent a week in the colony, and from his diary the following passage is extracted as it describes St. George’s a centuries ago:-
‘St. George’s is a handsome town, chiefly built of brick and consists of a good many houses. It is divided by a ridge which, running into the sea, forms on one side the Carenage, and on the other the bay. Thus there is the Bay town, where there is a hand-some square and market place, and the Carenage town, where the chief mercantile houses are settled, the ships lying and-locked and in deep water close to the wharf. On the ridge , just above the row of communication between the towns, stand the church, and on the promontory, or bluff head of the ridge, stands a large old fort built by the Spaniards when in possession of Grenada. It is built freestone, is very substantially, if not scientifically, constructed and contains the entire 45<sup>th</sup> Regiment. The 67<sup>th</sup> Regiments is quartered in the new barracks, and does duty on the new fortifications Richmond Hill, a very strong situation to the east and north-east the town…. The church is plain, with a handsome steeple and a clock given by the present Governor Matthew.’
'''1793''' In January 1793 General Matthew had successfully ministered the Government for nearly ten years, departed and after a short presidency of the Hon. Samuel Williams, Ninian Home, a low resident in the colony and a former speaker of the House Assembly, arrived from England with a commission as Lieutenant Governor, and was sworn in on January 28.
''' ''' A Wesleyan chapel was erected in St. George’s in this year and in October an Act, which may be termed the Grenada’ September Act’ was enacted, requiring the Governor to summon a fresh House of Assembly every seven years . In 1793 is also noteworthy for the introduction of Breadfruit into the West Indies by Captain Bligh, who brought 300 plants of that valuable tree from Tahiti St. Vincent. Another importation but of different character was a malignant fever brought to Grenada in February from the island of Bulam, on the west coast of Africa in the ship ‘Hankey’. The disease, which was thereafter called ‘ Bulam Fever’ seems to have been akin to , if not identical with, what is known in Africa as ‘Blackwater Fever’ and it rage in the colony with more less severity for the next five years.
'''1794 ''' Early in 1974 Mr. Home found it necessary to proclaim martial law in consequence of the outbreak of hostilities between Great Britain and France and the apprehension of descent of enemy upon the colony at any moment; no real preparation was, however made to repel and attack, as will be seen. He also endeavored to prevent the in rush of colored people from the French Islands which began to take place, but in this he was unsuccessful, as subsequent events showed. The colony was in great straits at this point for provisions, as there was a severe drought, and permission had to be given for the importation of foodstuff in American ships, a proceeding then regarded with much disfavor by the Home Government.
57e2d5f95c4f7a528bd7cb191ca0c4bcdd748837
Rivers in Grenada
0
16
22
2022-03-25T16:14:03Z
Abegail Thomas
31
Added Rivers in Grenada by Location
wikitext
text/x-wiki
Here is a list of rivers in Grenada. In this list ‘Grenada’ indicates rivers that separate the border among the different parishes on the island.
§ Antione River – Grenada
§ Balthazar River- Saint Andrew
§ Beauséjour River- Saint George
§ Black Bay River –Saint John
§ Bon Accord- Saint George
§ Calabasse River – Saint Patrick
§ Charlotte River- Saint John
§ Chemin River- Grenada
§ Crochu River- Saint Andrew
§ Douce River – Grenada
§ Duquesne River – Saint Mark| Saint Patrick
§ Gaulier River – Saint Mark
§ Gouyave River- Saint John
§ Grand Bras River- Saint Andrew
§ Grand Roy River- Saint John
§ Great Arm River- Saint Patrick
§ Great Arm River- Saint John
§ Great Crayfish River – Saint Mark
§ Great Palmiste River- Saint John
§ Great Ravine River – Saint Mark
§ Great Requin River – Saint David
§ Great River – Saint Andrew
§ Great River of Grand Barcolet – Saint Andrew
§ Grenville River- Saint Andrew
§ La Chaussée River- Saint David
§ La Tante River – Saint David
§ Little Crayfish River- Saint Mark
§ Marquis River- Saint Andrew
§ Little Plamiste River- Saint John
§ Little Requin River – Saint David
§ Little River – Saint John
§ Little River of Grand Barcolet –Saint Andrew
§ Little Saint Andrew River- Saint Andrew
§ Little Saint Mark River – Saint Mark
§ Little Saint Patrick River – Saint Patrick
§ River Loria- Saint Andrew
§ Maran Rover- Saint John
§ Marquis River- Saint Andrew
§ Menere River- Saint Andrew
§ River Petit Bacaye- Saint David
§ Red River – Saint John
§ Saint Francis Rover – Saint Andrew
§ Saint Johns river – Saint George
§ Saint Louis River – Saint David
§ Saint Marks River- Saint Mark
§ Saint Patrick River – Saint Patrick
§ Salle River ( East Coast) – Saint Patrick
§ Salle River ( West Coast )- Saint Patrick
§ River Saumache- Saint Mark
§ Silver River- Saint Mark
§ River Simon- Saint Andrew
§ Tempé River- Saint George
There are no rivers in Carriacou and Petite Martinique
64b691698c057e51cacad46722a83ba368e939e1
Template:Longitem
10
31
53
2022-03-28T00:47:59Z
en>Neveselbert
0
+conditional to allow transclusion of default style in other templates
wikitext
text/x-wiki
{{#if:{{{1|}}}|<div style="}} display:inline-block; line-height:1.2em; padding:0.1em 0;{{#if:{{{1|}}}|{{{style|}}}">{{{1}}}</div><includeonly>{{#if:{{{2|}}}|[[Category:Pages using Template:Longitem with unnamed style parameter]]}}</includeonly>}}<noinclude>
{{documentation}}
</noinclude>
6a40580511715660899f98b06460a45f5a42977b
Template:Documentation
10
27
45
2022-03-29T02:14:34Z
en>Bsherr
0
consistent with new substitution template format
wikitext
text/x-wiki
{{#invoke:documentation|main|_content={{ {{#invoke:documentation|contentTitle}}}}}}<noinclude>
<!-- Add categories to the /doc subpage -->
</noinclude>
9e62b964e96c4e3d478edecbfcb3c0338ae8a276
Module:List
828
70
131
2022-04-03T20:52:25Z
en>Wugapodes
0
Changed protection settings for "[[Module:List]]": [[WP:High-risk templates|High-risk Lua module]]: Used in MediaWiki interface ([Edit=Require administrator access] (indefinite) [Move=Require administrator access] (indefinite))
Scribunto
text/plain
-- This module outputs different kinds of lists. At the moment, bulleted,
-- unbulleted, horizontal, ordered, and horizontal ordered lists are supported.
local libUtil = require('libraryUtil')
local checkType = libUtil.checkType
local mTableTools = require('Module:TableTools')
local p = {}
local listTypes = {
['bulleted'] = true,
['unbulleted'] = true,
['horizontal'] = true,
['ordered'] = true,
['horizontal_ordered'] = true
}
function p.makeListData(listType, args)
-- Constructs a data table to be passed to p.renderList.
local data = {}
-- Classes
data.classes = {}
if listType == 'horizontal' or listType == 'horizontal_ordered' then
table.insert(data.classes, 'hlist hlist-separated')
elseif listType == 'unbulleted' then
table.insert(data.classes, 'plainlist')
end
table.insert(data.classes, args.class)
-- Main div style
data.style = args.style
-- Indent for horizontal lists
if listType == 'horizontal' or listType == 'horizontal_ordered' then
local indent = tonumber(args.indent)
indent = indent and indent * 1.6 or 0
if indent > 0 then
data.marginLeft = indent .. 'em'
end
end
-- List style types for ordered lists
-- This could be "1, 2, 3", "a, b, c", or a number of others. The list style
-- type is either set by the "type" attribute or the "list-style-type" CSS
-- property.
if listType == 'ordered' or listType == 'horizontal_ordered' then
data.listStyleType = args.list_style_type or args['list-style-type']
data.type = args['type']
-- Detect invalid type attributes and attempt to convert them to
-- list-style-type CSS properties.
if data.type
and not data.listStyleType
and not tostring(data.type):find('^%s*[1AaIi]%s*$')
then
data.listStyleType = data.type
data.type = nil
end
end
-- List tag type
if listType == 'ordered' or listType == 'horizontal_ordered' then
data.listTag = 'ol'
else
data.listTag = 'ul'
end
-- Start number for ordered lists
data.start = args.start
if listType == 'horizontal_ordered' then
-- Apply fix to get start numbers working with horizontal ordered lists.
local startNum = tonumber(data.start)
if startNum then
data.counterReset = 'listitem ' .. tostring(startNum - 1)
end
end
-- List style
-- ul_style and ol_style are included for backwards compatibility. No
-- distinction is made for ordered or unordered lists.
data.listStyle = args.list_style
-- List items
-- li_style is included for backwards compatibility. item_style was included
-- to be easier to understand for non-coders.
data.itemStyle = args.item_style or args.li_style
data.items = {}
for i, num in ipairs(mTableTools.numKeys(args)) do
local item = {}
item.content = args[num]
item.style = args['item' .. tostring(num) .. '_style']
or args['item_style' .. tostring(num)]
item.value = args['item' .. tostring(num) .. '_value']
or args['item_value' .. tostring(num)]
table.insert(data.items, item)
end
return data
end
function p.renderList(data)
-- Renders the list HTML.
-- Return the blank string if there are no list items.
if type(data.items) ~= 'table' or #data.items < 1 then
return ''
end
-- Render the main div tag.
local root = mw.html.create('div')
for i, class in ipairs(data.classes or {}) do
root:addClass(class)
end
root:css{['margin-left'] = data.marginLeft}
if data.style then
root:cssText(data.style)
end
-- Render the list tag.
local list = root:tag(data.listTag or 'ul')
list
:attr{start = data.start, type = data.type}
:css{
['counter-reset'] = data.counterReset,
['list-style-type'] = data.listStyleType
}
if data.listStyle then
list:cssText(data.listStyle)
end
-- Render the list items
for i, t in ipairs(data.items or {}) do
local item = list:tag('li')
if data.itemStyle then
item:cssText(data.itemStyle)
end
if t.style then
item:cssText(t.style)
end
item
:attr{value = t.value}
:wikitext(t.content)
end
return tostring(root)
end
function p.renderTrackingCategories(args)
local isDeprecated = false -- Tracks deprecated parameters.
for k, v in pairs(args) do
k = tostring(k)
if k:find('^item_style%d+$') or k:find('^item_value%d+$') then
isDeprecated = true
break
end
end
local ret = ''
if isDeprecated then
ret = ret .. '[[Category:List templates with deprecated parameters]]'
end
return ret
end
function p.makeList(listType, args)
if not listType or not listTypes[listType] then
error(string.format(
"bad argument #1 to 'makeList' ('%s' is not a valid list type)",
tostring(listType)
), 2)
end
checkType('makeList', 2, args, 'table')
local data = p.makeListData(listType, args)
local list = p.renderList(data)
local trackingCategories = p.renderTrackingCategories(args)
return list .. trackingCategories
end
for listType in pairs(listTypes) do
p[listType] = function (frame)
local mArguments = require('Module:Arguments')
local origArgs = mArguments.getArgs(frame, {
valueFunc = function (key, value)
if not value or not mw.ustring.find(value, '%S') then return nil end
if mw.ustring.find(value, '^%s*[%*#;:]') then
return value
else
return value:match('^%s*(.-)%s*$')
end
return nil
end
})
-- Copy all the arguments to a new table, for faster indexing.
local args = {}
for k, v in pairs(origArgs) do
args[k] = v
end
return p.makeList(listType, args)
end
end
return p
0d6c114450d0f5b3c1d2171ebeb41ae74f203f88
Template:If empty
10
30
51
2022-04-03T20:56:41Z
en>Wugapodes
0
Changed protection settings for "[[Template:If empty]]": [[WP:High-risk templates|Highly visible template]]: used on 2 million pages and permanently cascade protected; matches module protection ([Edit=Require administrator access] (indefinite) [Move=Require administrator access] (indefinite))
wikitext
text/x-wiki
{{<includeonly>safesubst:</includeonly>#invoke:If empty|main}}<noinclude>{{Documentation}}</noinclude>
745940b7bdde8a1585c887ee4ee5ce81d98461a4
Module:If empty
828
69
129
2022-05-06T04:38:40Z
en>Dinoguy1000
0
update from sandbox, per [[Template talk:If empty#Backcompat]]
Scribunto
text/plain
local p = {}
function p.main(frame)
local args = require('Module:Arguments').getArgs(frame, {wrappers = 'Template:If empty', removeBlanks = false})
local lastk = 0
for k,v in ipairs(args) do
if v ~= '' then
return v
end
lastk = k
end
end
return p
4bfc0c7c8bf3b63144db1ea12f2260db00421233
Template:Lorem ipsum
10
32
55
2022-05-31T16:46:13Z
en>Gonnym
0
bypass redirect
wikitext
text/x-wiki
{{#ifexpr:{{{1|1}}}>0|{{Lorem ipsum/p-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P1|link={{{link|{{{4|no}}}}}}}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>1|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P2}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>2|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P3}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>3|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P4}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>4|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P5}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>5|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P6}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>6|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P7}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>7|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P8}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>8|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P9}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>9|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P10}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>10|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P11}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>11|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P12}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>12|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P13}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>13|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P14}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>14|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P15}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>15|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P16}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>16|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P17}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>17|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P18}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>18|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P19}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>19|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P20}}{{{3|}}}}}{{Lorem ipsum/p-end-cond|{{{2|}}}|{{{join|}}}}}<includeonly>{{#ifeq:{{{cat|}}}|no||{{Template:Main other|[[Category:Wikipedia articles containing placeholders]]}}}}</includeonly><noinclude>
{{Documentation}}
<!-- PLEASE ADD CATEGORIES TO THE /doc SUBPAGE, AND INTERWIKIS TO WIKIDATA, THANKS -->
</noinclude>
91dbbf4d98efd9dcc6c7e87bedef6086ddcd6e1c
Module:High-use
828
68
127
2022-06-12T23:44:07Z
en>NguoiDungKhongDinhDanh
0
Comma should not be bolded (via [[:m:User:NguoiDungKhongDinhDanh/CodeAjaxEditor.js|CAE]])
Scribunto
text/plain
local p = {}
-- _fetch looks at the "demo" argument.
local _fetch = require('Module:Transclusion_count').fetch
local yesno = require('Module:Yesno')
function p.num(frame, count)
if count == nil then
if yesno(frame.args['fetch']) == false then
if (frame.args[1] or '') ~= '' then count = tonumber(frame.args[1]) end
else
count = _fetch(frame)
end
end
-- Build output string
local return_value = ""
if count == nil then
if frame.args[1] == "risk" then
return_value = "a very large number of"
else
return_value = "many"
end
else
-- Use 2 significant figures for smaller numbers and 3 for larger ones
local sigfig = 2
if count >= 100000 then
sigfig = 3
end
-- Prepare to round to appropriate number of sigfigs
local f = math.floor(math.log10(count)) - sigfig + 1
-- Round and insert "approximately" or "+" when appropriate
if (frame.args[2] == "yes") or (mw.ustring.sub(frame.args[1],-1) == "+") then
-- Round down
return_value = string.format("%s+", mw.getContentLanguage():formatNum(math.floor( (count / 10^(f)) ) * (10^(f))) )
else
-- Round to nearest
return_value = string.format("approximately %s", mw.getContentLanguage():formatNum(math.floor( (count / 10^(f)) + 0.5) * (10^(f))) )
end
-- Insert percentage of pages if that is likely to be >= 1% and when |no-percent= not set to yes
if count and count > 250000 and not yesno (frame:getParent().args['no-percent']) then
local percent = math.floor( ( (count/frame:callParserFunction('NUMBEROFPAGES', 'R') ) * 100) + 0.5)
if percent >= 1 then
return_value = string.format("%s pages, or roughly %s%% of all", return_value, percent)
end
end
end
return return_value
end
-- Actions if there is a large (greater than or equal to 100,000) transclusion count
function p.risk(frame)
local return_value = ""
if frame.args[1] == "risk" then
return_value = "risk"
else
local count = _fetch(frame)
if count and count >= 100000 then return_value = "risk" end
end
return return_value
end
function p.text(frame, count)
-- Only show the information about how this template gets updated if someone
-- is actually editing the page and maybe trying to update the count.
local bot_text = (frame:preprocess("{{REVISIONID}}") == "") and "\n\n----\n'''Preview message''': Transclusion count updated automatically ([[Template:High-use/doc#Technical details|see documentation]])." or ''
if count == nil then
if yesno(frame.args['fetch']) == false then
if (frame.args[1] or '') ~= '' then count = tonumber(frame.args[1]) end
else
count = _fetch(frame)
end
end
local title = mw.title.getCurrentTitle()
if title.subpageText == "doc" or title.subpageText == "sandbox" then
title = title.basePageTitle
end
local systemMessages = frame.args['system']
if frame.args['system'] == '' then
systemMessages = nil
end
-- This retrieves the project URL automatically to simplify localiation.
local templateCount = ('on [https://linkcount.toolforge.org/index.php?project=%s&page=%s %s pages]'):format(
mw.title.getCurrentTitle():fullUrl():gsub('//(.-)/.*', '%1'),
mw.uri.encode(title.fullText), p.num(frame, count))
local used_on_text = "'''This " .. (mw.title.getCurrentTitle().namespace == 828 and "Lua module" or "template") .. ' is used ';
if systemMessages then
used_on_text = used_on_text .. systemMessages ..
((count and count > 2000) and ("''', and " .. templateCount) or ("'''"))
else
used_on_text = used_on_text .. templateCount .. "'''"
end
local sandbox_text = ("%s's [[%s/sandbox|/sandbox]] or [[%s/testcases|/testcases]] subpages, or in your own [[%s]]. "):format(
(mw.title.getCurrentTitle().namespace == 828 and "module" or "template"),
title.fullText, title.fullText,
mw.title.getCurrentTitle().namespace == 828 and "Module:Sandbox|module sandbox" or "Wikipedia:User pages#SUB|user subpage"
)
local infoArg = frame.args["info"] ~= "" and frame.args["info"]
if (systemMessages or frame.args[1] == "risk" or (count and count >= 100000) ) then
local info = systemMessages and '.<br/>Changes to it can cause immediate changes to the Wikipedia user interface.' or '.'
if infoArg then
info = info .. "<br />" .. infoArg
end
sandbox_text = info .. '<br /> To avoid major disruption' ..
(count and count >= 100000 and ' and server load' or '') ..
', any changes should be tested in the ' .. sandbox_text ..
'The tested changes can be added to this page in a single edit. '
else
sandbox_text = (infoArg and ('.<br />' .. infoArg .. ' C') or ' and c') ..
'hanges may be widely noticed. Test changes in the ' .. sandbox_text
end
local discussion_text = systemMessages and 'Please discuss changes ' or 'Consider discussing changes '
if frame.args["2"] and frame.args["2"] ~= "" and frame.args["2"] ~= "yes" then
discussion_text = string.format("%sat [[%s]]", discussion_text, frame.args["2"])
else
discussion_text = string.format("%son the [[%s|talk page]]", discussion_text, title.talkPageTitle.fullText )
end
return used_on_text .. sandbox_text .. discussion_text .. " before implementing them." .. bot_text
end
function p.main(frame)
local count = nil
if yesno(frame.args['fetch']) == false then
if (frame.args[1] or '') ~= '' then count = tonumber(frame.args[1]) end
else
count = _fetch(frame)
end
local image = "[[File:Ambox warning yellow.svg|40px|alt=Warning|link=]]"
local type_param = "style"
local epilogue = ''
if frame.args['system'] and frame.args['system'] ~= '' then
image = "[[File:Ambox important.svg|40px|alt=Warning|link=]]"
type_param = "content"
local nocat = frame:getParent().args['nocat'] or frame.args['nocat']
local categorise = (nocat == '' or not yesno(nocat))
if categorise then
epilogue = frame:preprocess('{{Sandbox other||{{#switch:{{#invoke:Effective protection level|{{#switch:{{NAMESPACE}}|File=upload|#default=edit}}|{{FULLPAGENAME}}}}|sysop|templateeditor|interfaceadmin=|#default=[[Category:Pages used in system messages needing protection]]}}}}')
end
elseif (frame.args[1] == "risk" or (count and count >= 100000)) then
image = "[[File:Ambox warning orange.svg|40px|alt=Warning|link=]]"
type_param = "content"
end
if frame.args["form"] == "editnotice" then
return frame:expandTemplate{
title = 'editnotice',
args = {
["image"] = image,
["text"] = p.text(frame, count),
["expiry"] = (frame.args["expiry"] or "")
}
} .. epilogue
else
return require('Module:Message box').main('ombox', {
type = type_param,
image = image,
text = p.text(frame, count),
expiry = (frame.args["expiry"] or "")
}) .. epilogue
end
end
return p
e65a49e327a83e27b6a35ceff8dce344edee0840
Template:Column-generating template families
10
22
35
2022-06-14T10:57:40Z
5.43.78.53
0
wikitext
text/x-wiki
=== Column-generating template families ===
'''The templates listed here are not interchangeable'''. For example, using {{tl|col-float}} with {{tl|col-end}} instead of {{tl|col-float-end}} would leave a [[HTML]] [[Span and div|"div" (division)]] open, potentially harming any subsequent formatting.
<section begin="table" />
{| class="wikitable" style="line-height:1.4em"
|+ Column templates
|- style="vertical-align:middle;"
! scope="col" | Type
! scope="col" | Family
! scope="col" | {{longitem|Handles wiki <br/> table code?{{sup|{{dagger}}}}}}
! scope="col" | Responsive/<br>Mobile suited
! scope="col" | Start template
! scope="col" | Column divider
! scope="col" | End template
|-
| rowspan="2" | Float
| "Col-float"
| {{yes}}
| {{yes}}
| {{tl|Col-float}}
| {{tl|Col-float-break}}
| {{tl|Col-float-end}}
|-
| "Columns-start"
| {{yes}}
| {{yes}}
| {{tl|Columns-start}}
| {{tl|Column}}
| {{tl|Columns-end}}
|-
| rowspan="2" | Columns
| "Div col"
| {{yes}}
| {{yes}}
| {{tl|Div col}}
| –
| {{tl|Div col end}}
|-
| "Columns-list"
| {{no}}
| {{yes}}
| {{tl|Columns-list}} (wraps div col)
| –
| –
|-
| Flexbox
| "Flex columns"
| {{no}}
| {{yes}}
| {{tl|Flex columns}}
| –
| –
|-
| Table
| "Col"
| {{yes}}
| {{no}}
| {{tl|Col-begin}}, <br/>{{tl|Col-begin-fixed}} or<br/>{{tl|Col-begin-small}}
| {{tl|Col-break}} or<br/>{{tl|Col-2}} .. {{tl|Col-5}}
| {{tl|Col-end}}
|}
{{sup|{{dagger}}}} Can template handle the basic [[Help:Wiki markup|wiki markup]] <code><nowiki>{| | || |- |}</nowiki></code> [[Help:Tables|used to create tables]]? If not, special templates that produce these elements (such as {{tl|(!}}, {{tl|!}}, {{tl|!!}}, {{tl|!-}}, {{tl|!)}})—or [[HTML element|HTML tags]] ({{tag|table}}, {{tag|tr}}, etc.)—need to be used instead.<section end="table" /><noinclude>
{{Documentation
| content =
Used by column template documentation pages to provide links to other column-related templates.
[[Category:Multi-column templates| ]]
[[Category:Related-topic templates]]
}}
</noinclude>
83210b3edf5c03586efeeb2e82e5ebaf7b5868d8
Module:Uses TemplateStyles/config
828
89
169
2022-06-16T15:10:06Z
en>Pppery
0
Matching reality rather than 2018 me's wishful thinking
Scribunto
text/plain
local cfg = {} -- Don’t touch this line.
-- Subpage blacklist: these subpages will not be categorized (except for the
-- error category, which is always added if there is an error).
-- For example “Template:Foo/doc” matches the `doc = true` rule, so it will have
-- no categories. “Template:Foo” and “Template:Foo/documentation” match no rules,
-- so they *will* have categories. All rules should be in the
-- ['<subpage name>'] = true,
-- format.
cfg['subpage_blacklist'] = {
['doc'] = true,
['sandbox'] = true,
['sandbox2'] = true,
['testcases'] = true,
}
-- Sandbox title: if the stylesheet’s title is <template>/<stylesheet>.css, the
-- stylesheet’s sandbox is expected to be at <template>/<sandbox_title>/<stylesheet>.css
-- Set to nil to disable sandbox links.
cfg['sandbox_title'] = 'sandbox'
-- Error category: this category is added if the module call contains errors
-- (e.g. no stylesheet listed). A category name without namespace, or nil
-- to disable categorization (not recommended).
cfg['error_category'] = 'Uses TemplateStyles templates with errors'
-- Default category: this category is added if no custom category is specified
-- in module/template call. A category name without namespace, or nil
-- to disable categorization.
cfg['default_category'] = 'Templates using TemplateStyles'
-- Protection conflict category: this category is added if the protection level
-- of any stylesheet is lower than the protection level of the template. A category name
-- without namespace, or nil to disable categorization (not recommended).
cfg['protection_conflict_category'] = 'Templates using TemplateStyles with a different protection level'
-- Hierarchy of protection levels, used to determine whether one protection level is lower
-- than another and thus should populate protection_conflict_category. No protection is treated as zero
cfg['protection_hierarchy'] = {
autoconfirmed = 1,
extendedconfirmed = 2,
templateeditor = 3,
sysop = 4
}
-- Padlock pattern: Lua pattern to search on protected stylesheets for, or nil
-- to disable padlock check.
cfg['padlock_pattern'] = '{{pp-'
-- Missing padlock category: this category is added if a protected stylesheet
-- doesn’t contain any padlock template (specified by the above Lua pattern).
-- A category name without namespace (no nil allowed) if the pattern is not nil,
-- unused (and thus may be nil) otherwise.
cfg['missing_padlock_category'] = 'Templates using TemplateStyles without padlocks'
return cfg -- Don’t touch this line.
58e7a37c44f6ea3f6b8af54a559d696cc7256493
Module:Uses TemplateStyles
828
88
167
2022-06-16T15:13:38Z
en>Pppery
0
Matching reality rather than 2018 me's wishful thinking
Scribunto
text/plain
local yesno = require('Module:Yesno')
local mList = require('Module:List')
local mTableTools = require('Module:TableTools')
local mMessageBox = require('Module:Message box')
local TNT = require('Module:TNT')
local p = {}
local function format(msg, ...)
return TNT.format('I18n/Uses TemplateStyles', msg, ...)
end
local function getConfig()
return mw.loadData('Module:Uses TemplateStyles/config')
end
local function renderBox(tStyles)
local boxArgs = {
type = 'notice',
small = true,
image = string.format('[[File:Farm-Fresh css add.svg|32px|alt=%s]]', format('logo-alt'))
}
if #tStyles < 1 then
boxArgs.text = string.format('<strong class="error">%s</strong>', format('error-emptylist'))
else
local cfg = getConfig()
local tStylesLinks = {}
for i, ts in ipairs(tStyles) do
local link = string.format('[[:%s]]', ts)
local sandboxLink = nil
local tsTitle = mw.title.new(ts)
if tsTitle and cfg['sandbox_title'] then
local tsSandboxTitle = mw.title.new(string.format(
'%s:%s/%s/%s', tsTitle.nsText, tsTitle.baseText, cfg['sandbox_title'], tsTitle.subpageText))
if tsSandboxTitle and tsSandboxTitle.exists then
sandboxLink = format('sandboxlink', link, ':' .. tsSandboxTitle.prefixedText)
end
end
tStylesLinks[i] = sandboxLink or link
end
local tStylesList = mList.makeList('bulleted', tStylesLinks)
boxArgs.text = format(
mw.title.getCurrentTitle():inNamespaces(828,829) and 'header-module' or 'header-template') ..
'\n' .. tStylesList
end
return mMessageBox.main('mbox', boxArgs)
end
local function renderTrackingCategories(args, tStyles, titleObj)
if yesno(args.nocat) then
return ''
end
local cfg = getConfig()
local cats = {}
-- Error category
if #tStyles < 1 and cfg['error_category'] then
cats[#cats + 1] = cfg['error_category']
end
-- TemplateStyles category
titleObj = titleObj or mw.title.getCurrentTitle()
if (titleObj.namespace == 10 or titleObj.namespace == 828)
and not cfg['subpage_blacklist'][titleObj.subpageText]
then
local category = args.category or cfg['default_category']
if category then
cats[#cats + 1] = category
end
if not yesno(args.noprotcat) and (cfg['protection_conflict_category'] or cfg['padlock_pattern']) then
local currentProt = titleObj.protectionLevels["edit"] and titleObj.protectionLevels["edit"][1] or nil
local addedLevelCat = false
local addedPadlockCat = false
for i, ts in ipairs(tStyles) do
local tsTitleObj = mw.title.new(ts)
local tsProt = tsTitleObj.protectionLevels["edit"] and tsTitleObj.protectionLevels["edit"][1] or nil
if cfg['padlock_pattern'] and tsProt and not addedPadlockCat then
local content = tsTitleObj:getContent()
if not content:find(cfg['padlock_pattern']) then
cats[#cats + 1] = cfg['missing_padlock_category']
addedPadlockCat = true
end
end
if cfg['protection_conflict_category'] and currentProt and tsProt ~= currentProt and not addedLevelCat then
currentProt = cfg['protection_hierarchy'][currentProt] or 0
tsProt = cfg['protection_hierarchy'][tsProt] or 0
if tsProt < currentProt then
addedLevelCat = true
cats[#cats + 1] = cfg['protection_conflict_category']
end
end
end
end
end
for i, cat in ipairs(cats) do
cats[i] = string.format('[[Category:%s]]', cat)
end
return table.concat(cats)
end
function p._main(args, cfg)
local tStyles = mTableTools.compressSparseArray(args)
local box = renderBox(tStyles)
local trackingCategories = renderTrackingCategories(args, tStyles)
return box .. trackingCategories
end
function p.main(frame)
local origArgs = frame:getParent().args
local args = {}
for k, v in pairs(origArgs) do
v = v:match('^%s*(.-)%s*$')
if v ~= '' then
args[k] = v
end
end
return p._main(args)
end
return p
71ca57c37849f38e3c5ee30061bdae730963e48e
Module:Message box/configuration
828
73
137
2022-07-11T18:19:26Z
en>Izno
0
add templatestyles, remove a variable or two as a result
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Message box configuration --
-- --
-- This module contains configuration data for [[Module:Message box]]. --
--------------------------------------------------------------------------------
return {
ambox = {
types = {
speedy = {
class = 'ambox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ambox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ambox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ambox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ambox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ambox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ambox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
allowBlankParams = {'talk', 'sect', 'date', 'issue', 'fix', 'subst', 'hidden'},
allowSmall = true,
smallParam = 'left',
smallClass = 'mbox-small-left',
substCheck = true,
classes = {'metadata', 'ambox'},
imageEmptyCell = true,
imageCheckBlank = true,
imageSmallSize = '20x20px',
imageCellDiv = true,
useCollapsibleTextFields = true,
imageRightNone = true,
sectionDefault = 'article',
allowMainspaceCategories = true,
templateCategory = 'Article message templates',
templateCategoryRequireName = true,
templateErrorCategory = 'Article message templates with missing parameters',
templateErrorParamsToCheck = {'issue', 'fix', 'subst'},
removalNotice = '<small>[[Help:Maintenance template removal|Learn how and when to remove this template message]]</small>',
templatestyles = 'Module:Message box/ambox.css'
},
cmbox = {
types = {
speedy = {
class = 'cmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'cmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'cmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'cmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'cmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'cmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'cmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'cmbox'},
imageEmptyCell = true,
templatestyles = 'Module:Message box/cmbox.css'
},
fmbox = {
types = {
warning = {
class = 'fmbox-warning',
image = 'Ambox warning pn.svg'
},
editnotice = {
class = 'fmbox-editnotice',
image = 'Information icon4.svg'
},
system = {
class = 'fmbox-system',
image = 'Information icon4.svg'
}
},
default = 'system',
showInvalidTypeError = true,
classes = {'fmbox'},
imageEmptyCell = false,
imageRightNone = false,
templatestyles = 'Module:Message box/fmbox.css'
},
imbox = {
types = {
speedy = {
class = 'imbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'imbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'imbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'imbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'imbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'imbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
license = {
class = 'imbox-license licensetpl',
image = 'Imbox license.png' -- @todo We need an SVG version of this
},
featured = {
class = 'imbox-featured',
image = 'Cscr-featured.svg'
},
notice = {
class = 'imbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'imbox'},
imageEmptyCell = true,
below = true,
templateCategory = 'File message boxes',
templatestyles = 'Module:Message box/imbox.css'
},
ombox = {
types = {
speedy = {
class = 'ombox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ombox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ombox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ombox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ombox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ombox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ombox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'ombox'},
allowSmall = true,
imageEmptyCell = true,
imageRightNone = true,
templatestyles = 'Module:Message box/ombox.css'
},
tmbox = {
types = {
speedy = {
class = 'tmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'tmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'tmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'tmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'tmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'tmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'tmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'tmbox'},
allowSmall = true,
imageRightNone = true,
imageEmptyCell = true,
templateCategory = 'Talk message boxes',
templatestyles = 'Module:Message box/tmbox.css'
}
}
b6f0151037e6867b577c8cca32ff297e48697a10
Module:Message box
828
72
135
2022-07-11T18:19:29Z
en>Izno
0
add templatestyles, remove a variable or two as a result
Scribunto
text/plain
require('Module:No globals')
local getArgs
local yesno = require('Module:Yesno')
local lang = mw.language.getContentLanguage()
local CONFIG_MODULE = 'Module:Message box/configuration'
local DEMOSPACES = {talk = 'tmbox', image = 'imbox', file = 'imbox', category = 'cmbox', article = 'ambox', main = 'ambox'}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function getTitleObject(...)
-- Get the title object, passing the function through pcall
-- in case we are over the expensive function count limit.
local success, title = pcall(mw.title.new, ...)
if success then
return title
end
end
local function union(t1, t2)
-- Returns the union of two arrays.
local vals = {}
for i, v in ipairs(t1) do
vals[v] = true
end
for i, v in ipairs(t2) do
vals[v] = true
end
local ret = {}
for k in pairs(vals) do
table.insert(ret, k)
end
table.sort(ret)
return ret
end
local function getArgNums(args, prefix)
local nums = {}
for k, v in pairs(args) do
local num = mw.ustring.match(tostring(k), '^' .. prefix .. '([1-9]%d*)$')
if num then
table.insert(nums, tonumber(num))
end
end
table.sort(nums)
return nums
end
--------------------------------------------------------------------------------
-- Box class definition
--------------------------------------------------------------------------------
local MessageBox = {}
MessageBox.__index = MessageBox
function MessageBox.new(boxType, args, cfg)
args = args or {}
local obj = {}
-- Set the title object and the namespace.
obj.title = getTitleObject(args.page) or mw.title.getCurrentTitle()
-- Set the config for our box type.
obj.cfg = cfg[boxType]
if not obj.cfg then
local ns = obj.title.namespace
-- boxType is "mbox" or invalid input
if args.demospace and args.demospace ~= '' then
-- implement demospace parameter of mbox
local demospace = string.lower(args.demospace)
if DEMOSPACES[demospace] then
-- use template from DEMOSPACES
obj.cfg = cfg[DEMOSPACES[demospace]]
elseif string.find( demospace, 'talk' ) then
-- demo as a talk page
obj.cfg = cfg.tmbox
else
-- default to ombox
obj.cfg = cfg.ombox
end
elseif ns == 0 then
obj.cfg = cfg.ambox -- main namespace
elseif ns == 6 then
obj.cfg = cfg.imbox -- file namespace
elseif ns == 14 then
obj.cfg = cfg.cmbox -- category namespace
else
local nsTable = mw.site.namespaces[ns]
if nsTable and nsTable.isTalk then
obj.cfg = cfg.tmbox -- any talk namespace
else
obj.cfg = cfg.ombox -- other namespaces or invalid input
end
end
end
-- Set the arguments, and remove all blank arguments except for the ones
-- listed in cfg.allowBlankParams.
do
local newArgs = {}
for k, v in pairs(args) do
if v ~= '' then
newArgs[k] = v
end
end
for i, param in ipairs(obj.cfg.allowBlankParams or {}) do
newArgs[param] = args[param]
end
obj.args = newArgs
end
-- Define internal data structure.
obj.categories = {}
obj.classes = {}
-- For lazy loading of [[Module:Category handler]].
obj.hasCategories = false
return setmetatable(obj, MessageBox)
end
function MessageBox:addCat(ns, cat, sort)
if not cat then
return nil
end
if sort then
cat = string.format('[[Category:%s|%s]]', cat, sort)
else
cat = string.format('[[Category:%s]]', cat)
end
self.hasCategories = true
self.categories[ns] = self.categories[ns] or {}
table.insert(self.categories[ns], cat)
end
function MessageBox:addClass(class)
if not class then
return nil
end
table.insert(self.classes, class)
end
function MessageBox:setParameters()
local args = self.args
local cfg = self.cfg
-- Get type data.
self.type = args.type
local typeData = cfg.types[self.type]
self.invalidTypeError = cfg.showInvalidTypeError
and self.type
and not typeData
typeData = typeData or cfg.types[cfg.default]
self.typeClass = typeData.class
self.typeImage = typeData.image
-- Find if the box has been wrongly substituted.
self.isSubstituted = cfg.substCheck and args.subst == 'SUBST'
-- Find whether we are using a small message box.
self.isSmall = cfg.allowSmall and (
cfg.smallParam and args.small == cfg.smallParam
or not cfg.smallParam and yesno(args.small)
)
-- Add attributes, classes and styles.
self.id = args.id
self.name = args.name
if self.name then
self:addClass('box-' .. string.gsub(self.name,' ','_'))
end
if yesno(args.plainlinks) ~= false then
self:addClass('plainlinks')
end
for _, class in ipairs(cfg.classes or {}) do
self:addClass(class)
end
if self.isSmall then
self:addClass(cfg.smallClass or 'mbox-small')
end
self:addClass(self.typeClass)
self:addClass(args.class)
self.style = args.style
self.attrs = args.attrs
-- Set text style.
self.textstyle = args.textstyle
-- Find if we are on the template page or not. This functionality is only
-- used if useCollapsibleTextFields is set, or if both cfg.templateCategory
-- and cfg.templateCategoryRequireName are set.
self.useCollapsibleTextFields = cfg.useCollapsibleTextFields
if self.useCollapsibleTextFields
or cfg.templateCategory
and cfg.templateCategoryRequireName
then
if self.name then
local templateName = mw.ustring.match(
self.name,
'^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$'
) or self.name
templateName = 'Template:' .. templateName
self.templateTitle = getTitleObject(templateName)
end
self.isTemplatePage = self.templateTitle
and mw.title.equals(self.title, self.templateTitle)
end
-- Process data for collapsible text fields. At the moment these are only
-- used in {{ambox}}.
if self.useCollapsibleTextFields then
-- Get the self.issue value.
if self.isSmall and args.smalltext then
self.issue = args.smalltext
else
local sect
if args.sect == '' then
sect = 'This ' .. (cfg.sectionDefault or 'page')
elseif type(args.sect) == 'string' then
sect = 'This ' .. args.sect
end
local issue = args.issue
issue = type(issue) == 'string' and issue ~= '' and issue or nil
local text = args.text
text = type(text) == 'string' and text or nil
local issues = {}
table.insert(issues, sect)
table.insert(issues, issue)
table.insert(issues, text)
self.issue = table.concat(issues, ' ')
end
-- Get the self.talk value.
local talk = args.talk
-- Show talk links on the template page or template subpages if the talk
-- parameter is blank.
if talk == ''
and self.templateTitle
and (
mw.title.equals(self.templateTitle, self.title)
or self.title:isSubpageOf(self.templateTitle)
)
then
talk = '#'
elseif talk == '' then
talk = nil
end
if talk then
-- If the talk value is a talk page, make a link to that page. Else
-- assume that it's a section heading, and make a link to the talk
-- page of the current page with that section heading.
local talkTitle = getTitleObject(talk)
local talkArgIsTalkPage = true
if not talkTitle or not talkTitle.isTalkPage then
talkArgIsTalkPage = false
talkTitle = getTitleObject(
self.title.text,
mw.site.namespaces[self.title.namespace].talk.id
)
end
if talkTitle and talkTitle.exists then
local talkText
if self.isSmall then
local talkLink = talkArgIsTalkPage and talk or (talkTitle.prefixedText .. '#' .. talk)
talkText = string.format('([[%s|talk]])', talkLink)
else
talkText = 'Relevant discussion may be found on'
if talkArgIsTalkPage then
talkText = string.format(
'%s [[%s|%s]].',
talkText,
talk,
talkTitle.prefixedText
)
else
talkText = string.format(
'%s the [[%s#%s|talk page]].',
talkText,
talkTitle.prefixedText,
talk
)
end
end
self.talk = talkText
end
end
-- Get other values.
self.fix = args.fix ~= '' and args.fix or nil
local date
if args.date and args.date ~= '' then
date = args.date
elseif args.date == '' and self.isTemplatePage then
date = lang:formatDate('F Y')
end
if date then
self.date = string.format(" <span class='date-container'><i>(<span class='date'>%s</span>)</i></span>", date)
end
self.info = args.info
if yesno(args.removalnotice) then
self.removalNotice = cfg.removalNotice
end
end
-- Set the non-collapsible text field. At the moment this is used by all box
-- types other than ambox, and also by ambox when small=yes.
if self.isSmall then
self.text = args.smalltext or args.text
else
self.text = args.text
end
-- Set the below row.
self.below = cfg.below and args.below
-- General image settings.
self.imageCellDiv = not self.isSmall and cfg.imageCellDiv
self.imageEmptyCell = cfg.imageEmptyCell
-- Left image settings.
local imageLeft = self.isSmall and args.smallimage or args.image
if cfg.imageCheckBlank and imageLeft ~= 'blank' and imageLeft ~= 'none'
or not cfg.imageCheckBlank and imageLeft ~= 'none'
then
self.imageLeft = imageLeft
if not imageLeft then
local imageSize = self.isSmall
and (cfg.imageSmallSize or '30x30px')
or '40x40px'
self.imageLeft = string.format('[[File:%s|%s|link=|alt=]]', self.typeImage
or 'Imbox notice.png', imageSize)
end
end
-- Right image settings.
local imageRight = self.isSmall and args.smallimageright or args.imageright
if not (cfg.imageRightNone and imageRight == 'none') then
self.imageRight = imageRight
end
-- set templatestyles
self.base_templatestyles = cfg.templatestyles
self.templatestyles = args.templatestyles
end
function MessageBox:setMainspaceCategories()
local args = self.args
local cfg = self.cfg
if not cfg.allowMainspaceCategories then
return nil
end
local nums = {}
for _, prefix in ipairs{'cat', 'category', 'all'} do
args[prefix .. '1'] = args[prefix]
nums = union(nums, getArgNums(args, prefix))
end
-- The following is roughly equivalent to the old {{Ambox/category}}.
local date = args.date
date = type(date) == 'string' and date
local preposition = 'from'
for _, num in ipairs(nums) do
local mainCat = args['cat' .. tostring(num)]
or args['category' .. tostring(num)]
local allCat = args['all' .. tostring(num)]
mainCat = type(mainCat) == 'string' and mainCat
allCat = type(allCat) == 'string' and allCat
if mainCat and date and date ~= '' then
local catTitle = string.format('%s %s %s', mainCat, preposition, date)
self:addCat(0, catTitle)
catTitle = getTitleObject('Category:' .. catTitle)
if not catTitle or not catTitle.exists then
self:addCat(0, 'Articles with invalid date parameter in template')
end
elseif mainCat and (not date or date == '') then
self:addCat(0, mainCat)
end
if allCat then
self:addCat(0, allCat)
end
end
end
function MessageBox:setTemplateCategories()
local args = self.args
local cfg = self.cfg
-- Add template categories.
if cfg.templateCategory then
if cfg.templateCategoryRequireName then
if self.isTemplatePage then
self:addCat(10, cfg.templateCategory)
end
elseif not self.title.isSubpage then
self:addCat(10, cfg.templateCategory)
end
end
-- Add template error categories.
if cfg.templateErrorCategory then
local templateErrorCategory = cfg.templateErrorCategory
local templateCat, templateSort
if not self.name and not self.title.isSubpage then
templateCat = templateErrorCategory
elseif self.isTemplatePage then
local paramsToCheck = cfg.templateErrorParamsToCheck or {}
local count = 0
for i, param in ipairs(paramsToCheck) do
if not args[param] then
count = count + 1
end
end
if count > 0 then
templateCat = templateErrorCategory
templateSort = tostring(count)
end
if self.categoryNums and #self.categoryNums > 0 then
templateCat = templateErrorCategory
templateSort = 'C'
end
end
self:addCat(10, templateCat, templateSort)
end
end
function MessageBox:setAllNamespaceCategories()
-- Set categories for all namespaces.
if self.invalidTypeError then
local allSort = (self.title.namespace == 0 and 'Main:' or '') .. self.title.prefixedText
self:addCat('all', 'Wikipedia message box parameter needs fixing', allSort)
end
if self.isSubstituted then
self:addCat('all', 'Pages with incorrectly substituted templates')
end
end
function MessageBox:setCategories()
if self.title.namespace == 0 then
self:setMainspaceCategories()
elseif self.title.namespace == 10 then
self:setTemplateCategories()
end
self:setAllNamespaceCategories()
end
function MessageBox:renderCategories()
if not self.hasCategories then
-- No categories added, no need to pass them to Category handler so,
-- if it was invoked, it would return the empty string.
-- So we shortcut and return the empty string.
return ""
end
-- Convert category tables to strings and pass them through
-- [[Module:Category handler]].
return require('Module:Category handler')._main{
main = table.concat(self.categories[0] or {}),
template = table.concat(self.categories[10] or {}),
all = table.concat(self.categories.all or {}),
nocat = self.args.nocat,
page = self.args.page
}
end
function MessageBox:export()
local root = mw.html.create()
-- Add the subst check error.
if self.isSubstituted and self.name then
root:tag('b')
:addClass('error')
:wikitext(string.format(
'Template <code>%s[[Template:%s|%s]]%s</code> has been incorrectly substituted.',
mw.text.nowiki('{{'), self.name, self.name, mw.text.nowiki('}}')
))
end
local frame = mw.getCurrentFrame()
root:wikitext(frame:extensionTag{
name = 'templatestyles',
args = { src = self.base_templatestyles },
})
-- Add support for a single custom templatestyles sheet. Undocumented as
-- need should be limited and many templates using mbox are substed; we
-- don't want to spread templatestyles sheets around to arbitrary places
if self.templatestyles then
root:wikitext(frame:extensionTag{
name = 'templatestyles',
args = { src = self.templatestyles },
})
end
-- Create the box table.
local boxTable = root:tag('table')
boxTable:attr('id', self.id or nil)
for i, class in ipairs(self.classes or {}) do
boxTable:addClass(class or nil)
end
boxTable
:cssText(self.style or nil)
:attr('role', 'presentation')
if self.attrs then
boxTable:attr(self.attrs)
end
-- Add the left-hand image.
local row = boxTable:tag('tr')
if self.imageLeft then
local imageLeftCell = row:tag('td'):addClass('mbox-image')
if self.imageCellDiv then
-- If we are using a div, redefine imageLeftCell so that the image
-- is inside it. Divs use style="width: 52px;", which limits the
-- image width to 52px. If any images in a div are wider than that,
-- they may overlap with the text or cause other display problems.
imageLeftCell = imageLeftCell:tag('div'):addClass('mbox-image-div')
end
imageLeftCell:wikitext(self.imageLeft or nil)
elseif self.imageEmptyCell then
-- Some message boxes define an empty cell if no image is specified, and
-- some don't. The old template code in templates where empty cells are
-- specified gives the following hint: "No image. Cell with some width
-- or padding necessary for text cell to have 100% width."
row:tag('td')
:addClass('mbox-empty-cell')
end
-- Add the text.
local textCell = row:tag('td'):addClass('mbox-text')
if self.useCollapsibleTextFields then
-- The message box uses advanced text parameters that allow things to be
-- collapsible. At the moment, only ambox uses this.
textCell:cssText(self.textstyle or nil)
local textCellDiv = textCell:tag('div')
textCellDiv
:addClass('mbox-text-span')
:wikitext(self.issue or nil)
if (self.talk or self.fix) then
textCellDiv:tag('span')
:addClass('hide-when-compact')
:wikitext(self.talk and (' ' .. self.talk) or nil)
:wikitext(self.fix and (' ' .. self.fix) or nil)
end
textCellDiv:wikitext(self.date and (' ' .. self.date) or nil)
if self.info and not self.isSmall then
textCellDiv
:tag('span')
:addClass('hide-when-compact')
:wikitext(self.info and (' ' .. self.info) or nil)
end
if self.removalNotice then
textCellDiv:tag('span')
:addClass('hide-when-compact')
:tag('i')
:wikitext(string.format(" (%s)", self.removalNotice))
end
else
-- Default text formatting - anything goes.
textCell
:cssText(self.textstyle or nil)
:wikitext(self.text or nil)
end
-- Add the right-hand image.
if self.imageRight then
local imageRightCell = row:tag('td'):addClass('mbox-imageright')
if self.imageCellDiv then
-- If we are using a div, redefine imageRightCell so that the image
-- is inside it.
imageRightCell = imageRightCell:tag('div'):addClass('mbox-image-div')
end
imageRightCell
:wikitext(self.imageRight or nil)
end
-- Add the below row.
if self.below then
boxTable:tag('tr')
:tag('td')
:attr('colspan', self.imageRight and '3' or '2')
:addClass('mbox-text')
:cssText(self.textstyle or nil)
:wikitext(self.below or nil)
end
-- Add error message for invalid type parameters.
if self.invalidTypeError then
root:tag('div')
:addClass('mbox-invalid-type')
:wikitext(string.format(
'This message box is using an invalid "type=%s" parameter and needs fixing.',
self.type or ''
))
end
-- Add categories.
root:wikitext(self:renderCategories() or nil)
return tostring(root)
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p, mt = {}, {}
function p._exportClasses()
-- For testing.
return {
MessageBox = MessageBox
}
end
function p.main(boxType, args, cfgTables)
local box = MessageBox.new(boxType, args, cfgTables or mw.loadData(CONFIG_MODULE))
box:setParameters()
box:setCategories()
return box:export()
end
function mt.__index(t, k)
return function (frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
return t.main(k, getArgs(frame, {trim = false, removeBlanks = false}))
end
end
return setmetatable(p, mt)
fd6a8b1a0ac5916465cdf2eb099825f1d006cfba
Module:Message box/ombox.css
828
74
139
2022-07-11T18:40:17Z
en>Izno
0
and move mbox-small to 720px here as well
sanitized-css
text/css
/* {{pp|small=y}} */
.ombox {
margin: 4px 0;
border-collapse: collapse;
border: 1px solid #a2a9b1; /* Default "notice" gray */
background-color: #f8f9fa;
box-sizing: border-box;
}
/* For the "small=yes" option. */
.ombox.mbox-small {
font-size: 88%;
line-height: 1.25em;
}
.ombox-speedy {
border: 2px solid #b32424; /* Red */
background-color: #fee7e6; /* Pink */
}
.ombox-delete {
border: 2px solid #b32424; /* Red */
}
.ombox-content {
border: 1px solid #f28500; /* Orange */
}
.ombox-style {
border: 1px solid #fc3; /* Yellow */
}
.ombox-move {
border: 1px solid #9932cc; /* Purple */
}
.ombox-protection {
border: 2px solid #a2a9b1; /* Gray-gold */
}
.ombox .mbox-text {
border: none;
/* @noflip */
padding: 0.25em 0.9em;
width: 100%;
}
.ombox .mbox-image {
border: none;
/* @noflip */
padding: 2px 0 2px 0.9em;
text-align: center;
}
.ombox .mbox-imageright {
border: none;
/* @noflip */
padding: 2px 0.9em 2px 0;
text-align: center;
}
/* An empty narrow cell */
.ombox .mbox-empty-cell {
border: none;
padding: 0;
width: 1px;
}
.ombox .mbox-invalid-type {
text-align: center;
}
@media (min-width: 720px) {
.ombox {
margin: 4px 10%;
}
.ombox.mbox-small {
/* @noflip */
clear: right;
/* @noflip */
float: right;
/* @noflip */
margin: 4px 0 4px 1em;
width: 238px;
}
}
8fe3df4bb607e699eab2dbd23bd4a1a446391002
Module:Transclusion count/data/D
828
87
165
2022-07-17T05:11:28Z
en>Ahechtbot
0
[[Wikipedia:BOT|Bot]]: Updated page.
Scribunto
text/plain
return {
["D&D"] = 3800,
["D&D_to-do"] = 5500,
["D-da"] = 3000,
["DANFS"] = 8400,
["DC-Comics-trademark-copyright"] = 2100,
["DCS_Sri_Lanka"] = 2100,
["DDR"] = 2800,
["DEC"] = 8300,
["DECADE"] = 266000,
["DEN"] = 6500,
["DEU"] = 17000,
["DMC"] = 60000,
["DMCA"] = 1940000,
["DNB"] = 8600,
["DNB-Portal"] = 2100,
["DNB_portal"] = 3900,
["DNK"] = 7600,
["DNZB"] = 3500,
["DOI"] = 3900,
["DOWs"] = 2600,
["DPP"] = 92000,
["DPP/logo"] = 92000,
["DRV_links"] = 3400,
["DWT"] = 2200,
["DYKC"] = 6700,
["DYKF"] = 2100,
["DYK_blue"] = 3400,
["DYK_checklist"] = 9300,
["DYK_conditions"] = 58000,
["DYK_files"] = 2100,
["DYK_header"] = 25000,
["DYK_nompage_links"] = 69000,
["DYK_talk"] = 100000,
["DYK_talk/date"] = 100000,
["DYK_tools"] = 47000,
["DYK_tools/styles.css"] = 47000,
["DYKfile"] = 12000,
["DZA"] = 2600,
["Dab"] = 16000,
["Dablink"] = 2400,
["Dagger"] = 15000,
["Dashboard.wikiedu.org_assignment"] = 4600,
["Dashboard.wikiedu.org_bibliography/guide"] = 2900,
["Dashboard.wikiedu.org_course_header"] = 5200,
["Dashboard.wikiedu.org_course_header/edit-note"] = 5200,
["Dashboard.wikiedu.org_draft_template/about_this_sandbox"] = 5300,
["Dashboard.wikiedu.org_evaluate_article/guide"] = 4300,
["Dashboard.wikiedu.org_peer_review/guide"] = 6500,
["Dashboard.wikiedu.org_sandbox"] = 79000,
["Dashboard.wikiedu.org_student_editor"] = 66000,
["Dashboard.wikiedu.org_student_program_sandbox"] = 78000,
["Dashboard.wikiedu.org_talk_course_link"] = 68000,
["Dashboard.wikiedu.org_user_talk"] = 2200,
["Date"] = 37000,
["Date-mf"] = 36000,
["Date_table_sorting"] = 38000,
["Dated_maintenance_category"] = 2000000,
["Davis_Cup_player"] = 2300,
["Day+1"] = 6800,
["Day-1"] = 8300,
["Dbox"] = 3000,
["Dda"] = 5100,
["Dead_YouTube_links"] = 2900,
["Dead_Youtube_links"] = 2900,
["Dead_link"] = 267000,
["Death-date"] = 11000,
["Death-date_and_age"] = 9800,
["Death_date"] = 8800,
["Death_date_and_age"] = 356000,
["Death_date_and_given_age"] = 2100,
["Death_year_and_age"] = 15000,
["Death_year_category_header"] = 2000,
["Decade"] = 2100,
["Decade_link"] = 32000,
["Decimals"] = 2500,
["Decline"] = 2500,
["Declined"] = 3100,
["Decrease"] = 31000,
["Define"] = 4900,
["Deg2DMS"] = 3300,
["Deletion_review_log_header"] = 5200,
["Deletion_review_log_header/Core"] = 5300,
["Delink"] = 1700000,
["Delink_question_hyphen-minus"] = 277000,
["Delrevxfd"] = 3400,
["Democratic_Party_(US)/meta/shading"] = 14000,
["Description_missing"] = 7700,
["Designation/abbreviation"] = 7900,
["Designation/color"] = 76000,
["Designation/colour"] = 78000,
["Designation/colour2"] = 16000,
["Designation/divbox"] = 27000,
["Designation/text"] = 40000,
["Designation_list"] = 4900,
["Details"] = 5400,
["DetailsLink"] = 5500,
["Detect_singular"] = 14000,
["Deutsche_Bahn_station_codes"] = 2200,
["DfE_performance_tables"] = 4500,
["Diff"] = 30000,
["Diff2"] = 11000,
["Digits"] = 19000,
["Directories_box"] = 3200,
["Disamb"] = 2200,
["Disambig"] = 64000,
["Disambig-Class"] = 12000,
["DisambigProj"] = 12000,
["DisambigProject"] = 150000,
["Disambigproject"] = 5700,
["Disambiguation"] = 211000,
["Disambiguation/cat"] = 210000,
["Disambiguation_needed"] = 2300,
["Disambiguation_page_short_description"] = 341000,
["Discogs_artist"] = 13000,
["Discogs_master"] = 10000,
["Discogs_release"] = 2700,
["Discussion_bottom"] = 11000,
["Discussion_top"] = 12000,
["DisestcatCountry"] = 9300,
["DisestcatCountry/core"] = 9300,
["DisestcatCountryDecade"] = 2600,
["DisestcatUSstate"] = 4800,
["DisestcatUSstate/core"] = 4800,
["Disputed"] = 2200,
["Distinguish"] = 87000,
["Disused_Rail_Start"] = 4000,
["Disused_rail_start"] = 4300,
["Disused_style"] = 4700,
["Div_col"] = 363000,
["Div_col/styles.css"] = 365000,
["Div_col_end"] = 279000,
["Div_col_start"] = 2700,
["Divbox"] = 302000,
["Divbox/styles.css"] = 327000,
["Dividing_line"] = 4100,
["Dmbox"] = 443000,
["Dmbox/styles.css"] = 443000,
["Do_not_move_to_Commons"] = 15000,
["Doc"] = 3300,
["Documentation"] = 82000,
["Documentation_subpage"] = 87000,
["Dog_opentask"] = 3300,
["Doi"] = 24000,
["Doing"] = 3500,
["Don't_edit_this_line"] = 98000,
["Don't_edit_this_line_always_display"] = 425000,
["Don't_edit_this_line_extinct"] = 425000,
["Don't_edit_this_line_link_target"] = 425000,
["Don't_edit_this_line_link_text"] = 425000,
["Don't_edit_this_line_parent"] = 425000,
["Don't_edit_this_line_rank"] = 425000,
["Don't_edit_this_line_refs"] = 98000,
["Don't_edit_this_line_same_as"] = 425000,
["Done"] = 96000,
["Doppelganger"] = 2700,
["Dot"] = 3000,
["Double+single"] = 2300,
["Double-dagger"] = 15000,
["Dr"] = 3400,
["Dr-logno"] = 3400,
["Dr-make"] = 3400,
["Dr-yr"] = 3400,
["Draft_article"] = 2900,
["Draft_article_check"] = 3000,
["Draft_categories"] = 2700,
["Draft_other"] = 115000,
["Draft_topics"] = 24000,
["Drafts_moved_from_mainspace"] = 8700,
["Draw"] = 3400,
["Draw_key"] = 16000,
["Draw_links"] = 8500,
["Drep"] = 3400,
["Drugbankcite"] = 4300,
["Drugbox"] = 7400,
["Drugs.com"] = 3300,
["Ds/editnotice"] = 2300,
["Ds/talk_notice"] = 5400,
["Ds/topics"] = 8200,
["Dsindex"] = 2400,
["Dts"] = 37000,
["Dubious"] = 8000,
["Duck"] = 2700,
["Dummytab"] = 4500,
["Duration"] = 36000,
["Dutch_municipality"] = 2600,
["Dyktalk"] = 43000,
["Dynamic_IP"] = 5800,
["Dynamic_list"] = 8800,
["Module:DYK_checklist"] = 9300,
["Module:DYK_checklist/data"] = 9300,
["Module:DYK_nompage_links"] = 69000,
["Module:Data"] = 144000,
["Module:Date"] = 1290000,
["Module:DateI18n"] = 67000,
["Module:Date_table_sorting"] = 38000,
["Module:DecodeEncode"] = 52000,
["Module:Delink"] = 1820000,
["Module:Detect_singular"] = 1160000,
["Module:Disambiguation"] = 316000,
["Module:Distinguish"] = 87000,
["Module:Documentation"] = 127000,
["Module:Documentation/config"] = 127000,
["Module:Documentation/styles.css"] = 126000,
["Module:Draft_topics"] = 24000,
["Module:Duration"] = 232000,
}
8d1a6b12a88b2937c570f162f7a0aef8e64db613
Places where people live in Grenada
0
17
24
2022-07-18T23:35:17Z
Wikiricky
1
Created page with " *[[CALIVIGNY]] *[[GOLF COURSE]] *[[LOWER WOBURN]] *[[BRIZAN]] *[[HILLSBOROUGH]] *[[SIX ROADS]] *[[HARVEY VALE]] *[[MT. FANN]] *[[BRUNSWICK]] *[[L'ESTERRE]] *[[LAURISTON]] *..."
wikitext
text/x-wiki
*[[CALIVIGNY]]
*[[GOLF COURSE]]
*[[LOWER WOBURN]]
*[[BRIZAN]]
*[[HILLSBOROUGH]]
*[[SIX ROADS]]
*[[HARVEY VALE]]
*[[MT. FANN]]
*[[BRUNSWICK]]
*[[L'ESTERRE]]
*[[LAURISTON]]
*[[TOP HILL]]
*[[BEAUSEJOUR]]
*[[DOVER]]
*[[BELAIR]]
*[[WINDWARD]]
*[[BELLE VUE]]
*[[BOGLES]]
*[[LIMLAIR]]
*[[PROSPECT HALL]]
*[[HOPE]]
*[[CHURCH STREET, HILLSBOROUGH]]
*[[MT. ROYAL]]
*[[PETIT MARTINIQUE]]
*[[BELMONT]]
*[[TELESCOPE]]
*[[GEORGE V. STREET]]
*[[GRAND BACOLET]]
*[[MT. PLEASANT]]
*[[MAMMA CANNES]]
*[[SEATON JAMES STREET]]
*[[SOUBISE]]
*[[MARQUIS]]
*[[BELLE VUE SOUTH]]
*[[CARENAGE]]
*[[CANAL ROAD]]
*[[CROCHU]]
*[[MELDRUM]]
*[[POST ROYAL]]
*[[HAPPY HILL]]
*[[HERMITAGE]]
*[[PALMISTE]]
*[[CRAIGSTON]]
*[[CAFE]]
*[[SHENDA]]
*[[SALISBURY ROAD]]
*[[MT. MORITZ]]
*[[FENCE]]
*[[FONTENOY]]
*[[GRANTON]]
*[[MOLINIERE]]
*[[BYWAY]]
*[[GRAND MAL]]
*[[UPPER DEPRADINE STREET]]
*[[D LANCE, UPPER DEPRADINE]]
*[[THE LIMES]]
*[[FREQUENTE]]
*[[MORNE ROUGE]]
*[[MAHOUT]]
*[[ROSE HILL]]
*[[MONT TOUTE]]
*[[WOODLANDS]]
*[[LA FORTUNE]]
*[[GRAND ANSE VALLEY]]
*[[MORNE FENDUE]]
*[[GRAND ANSE]]
*[[JEAN ANGLIAS]]
*[[SNELL HALL]]
*[[GLEBE STREET, SAUTEURS]]
*[[MT. HARTMAN]]
*[[LANCE AUX EPINES]]
*[[MAIN STREET, SAUTEURS]]
*[[PLAINS]]
*[[MT. ROSE]]
*[[GRAND ANSE HOUSING SCHEME]]
*[[UPPER WOBURN]]
*[[GOLF LANDS]]
*[[MARLI]]
*[[LA MODE]]
*[[MT. CRAVEN]]
*[[CAFÉ]]
*[[RIVER ROAD]]
*[[WILLIAMSON ROAD]]
*[[WOOLWICH ROAD]]
*[[OLD FORT]]
*[[SCOTT STREET]]
*[[CALLISTE]]
*[[MORTLEY ROAD]]
*[[D'ARBEAU]]
*[[PARK LANE]]
*[[ST. JUILLE STREET]]
*[[INDEPENDENCE AVENUE]]
*[[CEMETERY HILL]]
*[[SANS SOUCI]]
*[[LOWER MORNE JALOUX]]
*[[GRENVILLE STREET]]
*[[MARIAN]]
*[[SIMMONS STREET]]
*[[BALTHAZAR]]
*[[MIRABEAU]]
*[[BEAUREGARD]]
*[[MORNE LOUNGE]]
*[[ST. CLOUDS]]
*[[MT. HORNE]]
*[[DUNFERMLINE]]
*[[FORT JUEDY]]
*[[NEW STREET, EDWARD STREET]]
*[[UPPER DEPRADINE, UPPER]]
*[[PARADISE]]
*[[SABB]]
*[[LA FILLETTE]]
*[[BYELANDS]]
*[[PARACLETE]]
*[[PLATEAU]]
*[[BIRCHGROVE]]
*[[GRAND BAY]]
*[[GRAND BRAS]]
*[[UPPER MORNE JALOUX]]
*[[RIVULET LANE]]
*[[FORD HILL ROAD]]
*[[UPPER CAPITOL]]
*[[BELVEDERE]]
*[[CONFER]]
*[[LYDER]]
*[[SPRINGS]]
*[[HOPE VALE]]
*[[RICHMOND HILL]]
*[[LA TASTE]]
*[[COCOA ROAD]]
*[[LA BORIE]]
*[[BAYROAD]]
*[[LA POTERIE]]
*[[THE BOCAS]]
*[[LOWTHER'S LANE]]
*[[MORNE DELICE]]
*[[MT. AIRY]]
*[[CORBEAU TOWN]]
*[[ST.PAUL'S]]
*[[LUCAS STREET]]
*[[ROEBUCK]]
*[[TEMPE]]
*[[CHERRY HILL]]
*[[CREIGHTON]]
*[[SPRING GARDEN]]
*[[PARADE]]
*[[MT. GAY]]
*[[PETERSFIELD]]
*[[MT. PARNASSUS]]
*[[POMME ROSE]]
*[[CORINTH]]
*[[LA SAGESSE]]
*[[BEATON]]
*[[PERDMONTEMPS]]
*[[UPPER LAURA]]
*[[OLD WESTERHALL]]
*[[REQUIN]]
*[[MINORCA]]
*[[WINDSOR FOREST]]
*[[THEBAIDE]]
*[[PROVIDENCE]]
*[[LA CALOHME]]
*[[MT. DISIRE]]
*[[PEARLS]]
*[[ST. JOHNS]]
*[[ANNANDALE]]
*[[RICHMOND]]
*[[LA DIGUE]]
*[[CARRUTH]]
*[[ST. JAMES]]
*[[LOWER HARFORD VILLAGE]]
*[[MUNICH]]
*[[UNION]]
*[[PLEASANCE]]
*[[LOWER CAPITOL]]
*[[VILLAGE ROAD]]
*[[SENDALL STREET]]
*[[FENTON VILLAGE]]
*[[SIMON]]
*[[TRUE BLUE]]
*[[VENDOME]]
*[[BOCA]]
*[[TIVOLI]]
*[[BELLEVUE]]
*[[NEW HAMPSHIRE]]
*[[ADELPHI]]
*[[NEW WESTERHALL]]
*[[BAILLES BACOLET]]
*[[LA FLORETTA]]
*[[BELLE-VUE (ABOVE ROAD)]]
*[[DUDMAR]]
*[[SNUG CORNER]]
*[[MARDIGRAS]]
*[[BEAULIEU]]
*[[ST. GEORGE ESTATE]]
*[[CARRIERE]]
*[[POINT SALINES]]
*[[M B HIGHWAY, POINT SALINES]]
*[[DE FAUX]]
*[[SYRACUSE]]
*[[BELLE ISLE]]
*[[LA PASTORA]]
*[[L'ESTERRIE]]
*[[BAYALEAU]]
*[[THE VILLA]]
*[[COOKHILL ROAD]]
*[[WELLS ROAD]]
*[[HOPE CITY]]
*[[GRIFFIN LANE]]
*[[MADEYS]]
*[[RIVER SALLEE]]
*[[MT. RICH]]
*[[CONSTANTINE]]
*[[THE SUMMIT]]
*[[THE STONE]]
*[[WESTERHALL POINT]]
*[[LAGOON ROAD]]
*[[GRANLETTE]]
*[[FELIX PARK]]
*[[MT. SEALEY]]
*[[WHITE GUN]]
*[[HERMON]]
*[[LOWER CONFERENCE]]
*[[WOODFORD]]
*[[UPPER CONFERENCE]]
*[[THE GREENS]]
*[[PARK ESTATE]]
*[[ST. PAUL'S]]
*[[AFRICA]]
*[[GOOD HOPE]]
*[[TANTEEN TERRACE]]
*[[MARRAST HILL]]
*[[DEPONTHIEU STREET]]
*[[ARCHIBALD AVENUE]]
*[[H.A BLAIZE STREET]]
*[[QUEEN'S PARK]]
*[[MALONEY STREET]]
*[[VINCENNES]]
*[[MARLMOUNT]]
*[[LA TANTE]]
*[[LOWER LAURA]]
*[[CONTENT]]
*[[COOPER'S HILL]]
*[[APSLEY HILL]]
*[[FOUNTAIN]]
*[[WALTHAM]]
*[[MARAN]]
*[[FIELD STREET]]
*[[DIAMOND ESTATE]]
*[[NON-PARIEL]]
*[[CRUICKSHANK ROAD]]
*[[COAST GUARD]]
*[[CHARLOTTE VALE]]
*[[HARMONY HALL]]
*[[STEWAD COTTAGE]]
*[[BONAIR]]
*[[GROSSPOINT, GROSS POINT VILLA]]
*[[DIEGO PIECE]]
*[[BONIAR ROAD, BONAIR]]
*[[RESOURCE]]
*[[DE VILLA]]
*[[DIAMOND STREET]]
*[[WALTER STREET]]
*[[GROSS POINT, GROSS POINT VILLA]]
*[[DIXIE]]
*[[RETREAT]]
*[[ST. DAVID STREET]]
*[[NEW GARDENS]]
*[[MARIGOT]]
*[[GOUYAVE ESTATE]]
*[[UPPER DEPRADINE, UPPER]]
*[[DOCTOR BELLE]]
*[[WINDSOR]]
*[[VICTORIA STREET]]
*[[CHAPEL ROAD]]
*[[MT. CARMEL]]
*[[GLADSTONE ROAD]]
*[[DURRANT ROAD]]
*[[MAULTY]]
*[[BELLE-VUE (BELOW ROAD)]]
*[[HIGH STREET, SAUTEURS]]
*[[MT. ALEXANDER]]
*[[GRAND ROY]]
*[[PROSPECT]]
*[[PEGGYS WHIM, HERMITAGE]]
*[[CELESTE]]
*[[RED MUD]]
*[[BLUGGO]]
*[[SAMARITAN]]
*[[BEVERLY LANE, MADEYS]]
*[[CHANTIMELLE]]
*[[COALS GAPS]]
*[[MT. WILLIAMS]]
*[[AHOMA]]
*[[MOYAH]]
*[[CROSS STREET, SAUTEURS]]
*[[DARVEY]]
*[[MT. REUIL]]
*[[BLACK FOREST]]
*[[BLACK FOREST, VENDOME]]
*[[PETITE ESPERANCE]]
*[[GRAVEL STREET, VENDOME]]
*[[MT. CUMMA]]
*[[RADIX, MT. PARNASSUS]]
*[[TABOR]]
*[[MELROSE]]
*[[JONES ROAD]]
*[[GRENVILLE VALE]]
*[[MC LAINE ALLEY, SAUTEURS]]
*[[SAUTEURS]]
*[[MEADOW]]
*[[BLACK BAY]]
*[[DUMFRIES]]
*[[UPPER DEPRADINE, GOUYAVE]]
*[[BROOKLYN]]
*[[EDWARD STREET]]
*[[CLOZIER]]
*[[CENTRAL DEPRADINE STREET]]
*[[ST. PETER STREET]]
*[[FLORIDA]]
*[[LOWER DEPRADINE STREET]]
*[[ST. JOHN STREET]]
*[[MT. RUSH]]
*[[GREEN STREET]]
*[[JUBILEE STREET]]
*[[WALKER]]
*[[CONCORD]]
*[[BROTHERS ESTATE]]
*[[BELVIDERE]]
*[[CORNET'S WALK]]
*[[EDWARD STREET, GOUYAVE]]
*[[SCHOOL LANE, GOUYAVE]]
*[[DOUGALDSTON]]
*[[HILL'S VIEW]]
*[[ROSEMOUNT]]
*[[LANGTON ROAD, GOUYAVE]]
*[[RENNIE]]
*[[MT. GRANBY]]
*[[COTTON BAILY]]
*[[GLEBE STREET, SAUTEURS]]
*[[POINTFIELD]]
*[[LEVERA]]
*[[BOTANICAL GARDENS]]
*[[ST. JOHN'S STREET]]
*[[LA RESOURCE]]
*[[INDUSTRY]]
*[[DUQUESNE]]
*[[QUEEN STREET]]
*[[FAIR FIELD ROAD]]
*[[MT. EDGE COMBE]]
*[[TUILLIERIES]]
*[[PADDOCK]]
*[[CHEMIN RIVER]]
*[[MT. AGNES]]
*[[EPPIN FOREST]]
*[[CHAMPFLEURS]]
*[[NOELSVILLE]]
*[[KAFE BEAU HILL]]
*[[BATTLE HILL]]
*[[TAYBAKAY]]
*[[PERSEVERANCE]]
*[[GOUYAVE]]
*[[BACK STREET, TEMPE]]
*[[CLARKS COAT BAY]]
*[[WELCOME]]
*[[CALABASH ALLEY]]
*[[LA FEMME]]
*[[HILL VIEW, GOUYAVE]]
*[[NEW STREET, GOUYAVE]]
*[[NEW STREET, GOUYAVE]]
*[[NEW SREET]]
*[[EDWARD STREET, GOUYAVE]]
*[[LANGTON ROAD]]
*[[VICTORIA ROAD, GOUYAVE]]
*[[ST BENOIT STREET, GOUYAVE]]
*[[RIVER LANE, GOUYAVE ESTATE]]
*[[VICTORIA ROAD, GOUYAVE]]
*[[HILLS VIEW, GOUYAVE]]
*[[LANGTON ROAD, GOUYAVE]]
*[[BOYKE'S LANE]]
*[[ST. FRANCIS STREET]]
*[[BOYKES LANE, GOUYAVE]]
*[[CORNETS WALK, GOUYAVE]]
*[[MT. NESBIT]]
*[[MITCHELL'S LANE]]
*[[MARKET HILL]]
*[[OBSERVATORY ROAD]]
*[[LONG GUTTER]]
*[[COX ALLEY]]
*[[BRIGG'S ALLEY]]
*[[TANTEEN, TANTEEN TERRACE]]
*[[CROSS STREET]]
*[[BAIN'S ALLEY]]
*[[TYRREL STREET]]
*[[CHURCH STREET]]
*[[MT. WHELDALE]]
*[[THE VILLA, LONG GUTTER]]
*[[DE VILLA, BLACKBURN ALLEY]]
*[[HADDON SMITH STREET]]
*[[BLACKBURN ALLEY]]
*[[MUNRO STREET]]
*[[GROSS POINT VILLA]]
*[[TAYLOR]]
*[[RESOURCE, RESOURCE]]
*[[HENRY STREET]]
*[[GALL STREET]]
*[[CHURCH HILL ROAD]]
*[[BONAIR ROAD, BONAIR]]
*[[CRUICKSHANK ROAD, VICTORIA]]
*[[FAIR FIELD ROAD, VICTORIA]]
*[[BATHWAY]]
*[[BAY ROAD, SAUTEURS]]
*[[NULL]]
*[[TOP HILL, HERMITAGE]]
*[[DUQUESNE, DUQUESNE]]
*[[DE BLANDEAU]]
*[[CASTIGNE]]
*[[GLEBE LAND, SAUTEURS]]
*[[MAIN STREET, SAUTEURS]]
*[[MAHOUT, SAUTEURS]]
*[[UPPER HARFORD VILLAGE]]
*[[BLAIZE]]
*[[SALISBURY STREET, SAUTEURS]]
*[[CALLISTE SETTLEMENT]]
*[[GUPO]]
*[[HILL TOP, CALIVIGNY]]
*[[MT. RODNEY]]
*[[DUQUENSE]]
*[[LA FORTUNE BRIDGE]]
*[[RED HEAD STREET, SAUTEURS]]
*[[HIGH ST, SAUTEURS]]
*[[DE SILLES]]
*[[HILL STREET, SAUTEURS]]
*[[QUEEN STREET, VICTORIA]]
*[[MUNROE STREET, VICTORIA]]
*[[CENTRAL DEPRADINE, GOUYAVE]]
*[[DOTHAN ESTATE]]
*[[LOWER DEPRADINE, GOUYAVE]]
*[[MT. FELIX]]
*[[MT. PLASIR]]
*[[SCHOOL LANE]]
*[[ST. DOMINIC'S ST.]]
*[[HILLSVIEW, GOUYAVE]]
*[[ST PETERS STREET, GOUYAVE]]
*[[ST. BENOIT'S STREET]]
*[[VICTORIA ROAD]]
*[[ST DOMINIC STREET, GOUYAVE]]
*[[FERGUSONS LANE, GOUYAVE]]
*[[RADIX]]
*[[ST FRANCIS, GOUYAVE]]
*[[CORNWALL STREET, SAUTEURS]]
*[[HIGH STREET, SAUTEURS]]
*[[ST PETERS, GOUYAVE]]
*[[THE VILLA, SAUTEURS]]
*[[SALISBURY STREET, SAUTEURS]]
*[[RED HEAD STREET, SAUTEURS]]
*[[RIVER LANE, GOUYAVE]]
*[[TRANQUIL LANE]]
*[[CHANTILLY, MT. GAY]]
*[[UPPER DEPRADINE, GOUYAVE]]
*[[MORNE JALOUX]]
*[[CHAPEL'S LANE]]
*[[MALIGNON]]
*[[MC NELLIE ALLEY, SAUTEURS]]
*[[SALISBURY RD, SAUTEURS]]
*[[REDHEAD ST, SAUTEURS]]
*[[MC NELLY ALLEY, SAUTEURS]]
*[[CEDARS]]
*[[BOCAGE, BONAIR]]
*[[BONAIR, NULL]]
*[[DIXIE, SPRINGS]]
*[[APRES TOUTE]]
*[[ST DOMINIC, GOUYAVE]]
*[[HIGH GATE, MORNE FENDUE]]
*[[ADAM'S ALLEY]]
*[[THE VILLA, THE ROCK]]
*[[GORE STREET]]
*[[MELVILLE STREET]]
*[[THE STONES, NEW HAMPSHIRE]]
*[[RAVINE, MT. GAY]]
*[[MAYANN, CONSTANTINE]]
*[[BEN JONES STREET]]
*[[CHADDEAU]]
*[[QUEEN STREET, ST. JOHN'S]]
*[[VINEYARD]]
*[[BACK STRRET, TEMPE]]
*[[CODRONA]]
*[[BACK STREET]]
*[[MANGO, NEW HAMPSHIRE]]
*[[MT. ANON]]
*[[SAMUELS AVENUE]]
*[[SEATON BROWNE STREET]]
*[[SAMARITAN, DIEGO PIECE]]
*[[MUNRO STREET, VICTORIA]]
*[[EDGEMOND POINT]]
*[[MC NELLIE ALLEY, SAUTEURS]]
*[[CHANTILLY, TEMPE]]
*[[RED GATE]]
*[[VICTORIA]]
*[[LA TANTE, GLEBE LAND]]
*[[LA CALOME, NEW WESTERHALL]]
*[[TOUS CONGO]]
*[[PENNY RETREAT]]
*[[CARNAL ROAD]]
*[[MT ST ERVANS, L'ESTERRIE]]
*[[BOCAGE]]
*[[MAUCHETTE]]
*[[NETTLE POINT]]
*[[PETIT BOCAGE]]
*[[MON REPOS]]
*[[MT. EDGECOMBE]]
*[[PETITE BACAYE, NEW]]
*[[MARLMOUNT, GLEBE LAND]]
*[[DEHAR, GLEBE LAND]]
*[[MC NELLY ALLY, SAUTEURS]]
*[[TETMUND]]
*[[SAUTEURS, MAHOUT]]
*[[OTTLEY'S LANE]]
*[[10 CIRCULAR DRIVE, FREQUENTE]]
*[[THE STONES, GRAND ANSE]]
*[[MCNEILLY ALLEY, SAUTEURS]]
*[[SUNSET VALLEY, POINT SALINES]]
*[[FALL EDGE, GRAND ANSE]]
*[[HILLS ROAD]]
*[[GREY STONE]]
*[[TRYNE ALLEY]]
*[[TURTLE BACK DRIVE, LANCE AUX]]
*[[HILLSTREET, SAUTEURS]]
*[[HARFORD VILLAGE, LOWER]]
*[[ST. CYR]]
*[[ST DAVID STREET, VICTORIA]]
*[[GALL STREET, VICTORIA]]
*[[CHANTILLY]]
*[[ST JOHN STREET, VICTORIA]]
*[[GRAND ETANG ROAD]]
*[[REDMUD]]
*[[CRUICK SHANK, VICTORIA]]
*[[THE STONS, GRAND ANSE]]
*[[BAMBOO]]
*[[DIAMOND STREET, VICTORIA]]
*[[WILLIS]]
*[[CLARKES COURT BAY,]]
*[[CLARKE COURT BAY, WOODLANDS]]
*[[MBHIGHWAY, GRAND ANSE]]
*[[M H HIGHWAY, GRAND ANSE]]
*[[M B HIGHWAY, GRAND ANSE]]
*[[YOUNG STREET]]
*[[HILLSBOROUGH STREET]]
*[[GREY STONE, BELMONT]]
*[[CAFE, WOODLANDS]]
*[[MC NEILLY, SAUTEURS]]
*[[SLINGER STREET, HADDON SMITH]]
*[[BON ACCORD ESTATE]]
*[[HALIFAX STREET]]
*[[MAHOUT, ROSE HILL]]
*[[MAIN STREEET, SAUTEURS]]
*[[GLEBE SREET, SAUTEURS]]
*[[GLEBLAND, SAUTEURS]]
*[[PETITE ETANG]]
*[[MAIN-STREET SAUTEURS,]]
*[[UPPER CARRIERE]]
*[[RED HEAD STREET, LA FORTUNE]]
*[[JUMBIE]]
*[[MARINE VILLA]]
*[[CHANCERY STREET, MUNRO]]
*[[DUSTY HIGHWAY, GRAND ANSE]]
*[[CAFE, CAFÉ]]
*[[MYANN, CONSTANTINE]]
*[[SAMUEL AVENUE, CALIVIGNY]]
*[[MONGO ROAD, GOUYAVE ESTATE]]
*[[RIVER ROAD, MT. RUSH]]
*[[CALRKS COURT BAY, WOODLANDS]]
*[[COCOA ROAD, MARIAN]]
*[[MC NEILLY ALLEY, MARLI]]
*[[SLINGER STREET, ST. DAVID]]
*[[WHITE HALL, PARK LANE]]
*[[GRAND ANSE ESTATE, LANCE AUX]]
*[[MT ST ERVANS, LA DIGUE]]
*[[MAURICE BISHOP HWY, GRAND]]
*[[WATERLOO]]
*[[FERGUSON'S LANE]]
*[[GLEBE LAND, SAUTEURS]]
*[[BAY ROAD, SAUTEURS]]
*[[GLEBE STREET, SAUTEURS]]
10b8fde9b26b254da5f66dfe797344c5f5b17b37
25
24
2022-07-18T23:43:08Z
Wikiricky
1
added a page description
wikitext
text/x-wiki
This is a list of populated villages, towns, settlements, and streets in Grenada.
*[[CALIVIGNY]]
*[[GOLF COURSE]]
*[[LOWER WOBURN]]
*[[BRIZAN]]
*[[HILLSBOROUGH]]
*[[SIX ROADS]]
*[[HARVEY VALE]]
*[[MT. FANN]]
*[[BRUNSWICK]]
*[[L'ESTERRE]]
*[[LAURISTON]]
*[[TOP HILL]]
*[[BEAUSEJOUR]]
*[[DOVER]]
*[[BELAIR]]
*[[WINDWARD]]
*[[BELLE VUE]]
*[[BOGLES]]
*[[LIMLAIR]]
*[[PROSPECT HALL]]
*[[HOPE]]
*[[CHURCH STREET, HILLSBOROUGH]]
*[[MT. ROYAL]]
*[[PETIT MARTINIQUE]]
*[[BELMONT]]
*[[TELESCOPE]]
*[[GEORGE V. STREET]]
*[[GRAND BACOLET]]
*[[MT. PLEASANT]]
*[[MAMMA CANNES]]
*[[SEATON JAMES STREET]]
*[[SOUBISE]]
*[[MARQUIS]]
*[[BELLE VUE SOUTH]]
*[[CARENAGE]]
*[[CANAL ROAD]]
*[[CROCHU]]
*[[MELDRUM]]
*[[POST ROYAL]]
*[[HAPPY HILL]]
*[[HERMITAGE]]
*[[PALMISTE]]
*[[CRAIGSTON]]
*[[CAFE]]
*[[SHENDA]]
*[[SALISBURY ROAD]]
*[[MT. MORITZ]]
*[[FENCE]]
*[[FONTENOY]]
*[[GRANTON]]
*[[MOLINIERE]]
*[[BYWAY]]
*[[GRAND MAL]]
*[[UPPER DEPRADINE STREET]]
*[[D LANCE, UPPER DEPRADINE]]
*[[THE LIMES]]
*[[FREQUENTE]]
*[[MORNE ROUGE]]
*[[MAHOUT]]
*[[ROSE HILL]]
*[[MONT TOUTE]]
*[[WOODLANDS]]
*[[LA FORTUNE]]
*[[GRAND ANSE VALLEY]]
*[[MORNE FENDUE]]
*[[GRAND ANSE]]
*[[JEAN ANGLIAS]]
*[[SNELL HALL]]
*[[GLEBE STREET, SAUTEURS]]
*[[MT. HARTMAN]]
*[[LANCE AUX EPINES]]
*[[MAIN STREET, SAUTEURS]]
*[[PLAINS]]
*[[MT. ROSE]]
*[[GRAND ANSE HOUSING SCHEME]]
*[[UPPER WOBURN]]
*[[GOLF LANDS]]
*[[MARLI]]
*[[LA MODE]]
*[[MT. CRAVEN]]
*[[CAFÉ]]
*[[RIVER ROAD]]
*[[WILLIAMSON ROAD]]
*[[WOOLWICH ROAD]]
*[[OLD FORT]]
*[[SCOTT STREET]]
*[[CALLISTE]]
*[[MORTLEY ROAD]]
*[[D'ARBEAU]]
*[[PARK LANE]]
*[[ST. JUILLE STREET]]
*[[INDEPENDENCE AVENUE]]
*[[CEMETERY HILL]]
*[[SANS SOUCI]]
*[[LOWER MORNE JALOUX]]
*[[GRENVILLE STREET]]
*[[MARIAN]]
*[[SIMMONS STREET]]
*[[BALTHAZAR]]
*[[MIRABEAU]]
*[[BEAUREGARD]]
*[[MORNE LOUNGE]]
*[[ST. CLOUDS]]
*[[MT. HORNE]]
*[[DUNFERMLINE]]
*[[FORT JUEDY]]
*[[NEW STREET, EDWARD STREET]]
*[[UPPER DEPRADINE, UPPER]]
*[[PARADISE]]
*[[SABB]]
*[[LA FILLETTE]]
*[[BYELANDS]]
*[[PARACLETE]]
*[[PLATEAU]]
*[[BIRCHGROVE]]
*[[GRAND BAY]]
*[[GRAND BRAS]]
*[[UPPER MORNE JALOUX]]
*[[RIVULET LANE]]
*[[FORD HILL ROAD]]
*[[UPPER CAPITOL]]
*[[BELVEDERE]]
*[[CONFER]]
*[[LYDER]]
*[[SPRINGS]]
*[[HOPE VALE]]
*[[RICHMOND HILL]]
*[[LA TASTE]]
*[[COCOA ROAD]]
*[[LA BORIE]]
*[[BAYROAD]]
*[[LA POTERIE]]
*[[THE BOCAS]]
*[[LOWTHER'S LANE]]
*[[MORNE DELICE]]
*[[MT. AIRY]]
*[[CORBEAU TOWN]]
*[[ST.PAUL'S]]
*[[LUCAS STREET]]
*[[ROEBUCK]]
*[[TEMPE]]
*[[CHERRY HILL]]
*[[CREIGHTON]]
*[[SPRING GARDEN]]
*[[PARADE]]
*[[MT. GAY]]
*[[PETERSFIELD]]
*[[MT. PARNASSUS]]
*[[POMME ROSE]]
*[[CORINTH]]
*[[LA SAGESSE]]
*[[BEATON]]
*[[PERDMONTEMPS]]
*[[UPPER LAURA]]
*[[OLD WESTERHALL]]
*[[REQUIN]]
*[[MINORCA]]
*[[WINDSOR FOREST]]
*[[THEBAIDE]]
*[[PROVIDENCE]]
*[[LA CALOHME]]
*[[MT. DISIRE]]
*[[PEARLS]]
*[[ST. JOHNS]]
*[[ANNANDALE]]
*[[RICHMOND]]
*[[LA DIGUE]]
*[[CARRUTH]]
*[[ST. JAMES]]
*[[LOWER HARFORD VILLAGE]]
*[[MUNICH]]
*[[UNION]]
*[[PLEASANCE]]
*[[LOWER CAPITOL]]
*[[VILLAGE ROAD]]
*[[SENDALL STREET]]
*[[FENTON VILLAGE]]
*[[SIMON]]
*[[TRUE BLUE]]
*[[VENDOME]]
*[[BOCA]]
*[[TIVOLI]]
*[[BELLEVUE]]
*[[NEW HAMPSHIRE]]
*[[ADELPHI]]
*[[NEW WESTERHALL]]
*[[BAILLES BACOLET]]
*[[LA FLORETTA]]
*[[BELLE-VUE (ABOVE ROAD)]]
*[[DUDMAR]]
*[[SNUG CORNER]]
*[[MARDIGRAS]]
*[[BEAULIEU]]
*[[ST. GEORGE ESTATE]]
*[[CARRIERE]]
*[[POINT SALINES]]
*[[M B HIGHWAY, POINT SALINES]]
*[[DE FAUX]]
*[[SYRACUSE]]
*[[BELLE ISLE]]
*[[LA PASTORA]]
*[[L'ESTERRIE]]
*[[BAYALEAU]]
*[[THE VILLA]]
*[[COOKHILL ROAD]]
*[[WELLS ROAD]]
*[[HOPE CITY]]
*[[GRIFFIN LANE]]
*[[MADEYS]]
*[[RIVER SALLEE]]
*[[MT. RICH]]
*[[CONSTANTINE]]
*[[THE SUMMIT]]
*[[THE STONE]]
*[[WESTERHALL POINT]]
*[[LAGOON ROAD]]
*[[GRANLETTE]]
*[[FELIX PARK]]
*[[MT. SEALEY]]
*[[WHITE GUN]]
*[[HERMON]]
*[[LOWER CONFERENCE]]
*[[WOODFORD]]
*[[UPPER CONFERENCE]]
*[[THE GREENS]]
*[[PARK ESTATE]]
*[[ST. PAUL'S]]
*[[AFRICA]]
*[[GOOD HOPE]]
*[[TANTEEN TERRACE]]
*[[MARRAST HILL]]
*[[DEPONTHIEU STREET]]
*[[ARCHIBALD AVENUE]]
*[[H.A BLAIZE STREET]]
*[[QUEEN'S PARK]]
*[[MALONEY STREET]]
*[[VINCENNES]]
*[[MARLMOUNT]]
*[[LA TANTE]]
*[[LOWER LAURA]]
*[[CONTENT]]
*[[COOPER'S HILL]]
*[[APSLEY HILL]]
*[[FOUNTAIN]]
*[[WALTHAM]]
*[[MARAN]]
*[[FIELD STREET]]
*[[DIAMOND ESTATE]]
*[[NON-PARIEL]]
*[[CRUICKSHANK ROAD]]
*[[COAST GUARD]]
*[[CHARLOTTE VALE]]
*[[HARMONY HALL]]
*[[STEWAD COTTAGE]]
*[[BONAIR]]
*[[GROSSPOINT, GROSS POINT VILLA]]
*[[DIEGO PIECE]]
*[[BONIAR ROAD, BONAIR]]
*[[RESOURCE]]
*[[DE VILLA]]
*[[DIAMOND STREET]]
*[[WALTER STREET]]
*[[GROSS POINT, GROSS POINT VILLA]]
*[[DIXIE]]
*[[RETREAT]]
*[[ST. DAVID STREET]]
*[[NEW GARDENS]]
*[[MARIGOT]]
*[[GOUYAVE ESTATE]]
*[[UPPER DEPRADINE, UPPER]]
*[[DOCTOR BELLE]]
*[[WINDSOR]]
*[[VICTORIA STREET]]
*[[CHAPEL ROAD]]
*[[MT. CARMEL]]
*[[GLADSTONE ROAD]]
*[[DURRANT ROAD]]
*[[MAULTY]]
*[[BELLE-VUE (BELOW ROAD)]]
*[[HIGH STREET, SAUTEURS]]
*[[MT. ALEXANDER]]
*[[GRAND ROY]]
*[[PROSPECT]]
*[[PEGGYS WHIM, HERMITAGE]]
*[[CELESTE]]
*[[RED MUD]]
*[[BLUGGO]]
*[[SAMARITAN]]
*[[BEVERLY LANE, MADEYS]]
*[[CHANTIMELLE]]
*[[COALS GAPS]]
*[[MT. WILLIAMS]]
*[[AHOMA]]
*[[MOYAH]]
*[[CROSS STREET, SAUTEURS]]
*[[DARVEY]]
*[[MT. REUIL]]
*[[BLACK FOREST]]
*[[BLACK FOREST, VENDOME]]
*[[PETITE ESPERANCE]]
*[[GRAVEL STREET, VENDOME]]
*[[MT. CUMMA]]
*[[RADIX, MT. PARNASSUS]]
*[[TABOR]]
*[[MELROSE]]
*[[JONES ROAD]]
*[[GRENVILLE VALE]]
*[[MC LAINE ALLEY, SAUTEURS]]
*[[SAUTEURS]]
*[[MEADOW]]
*[[BLACK BAY]]
*[[DUMFRIES]]
*[[UPPER DEPRADINE, GOUYAVE]]
*[[BROOKLYN]]
*[[EDWARD STREET]]
*[[CLOZIER]]
*[[CENTRAL DEPRADINE STREET]]
*[[ST. PETER STREET]]
*[[FLORIDA]]
*[[LOWER DEPRADINE STREET]]
*[[ST. JOHN STREET]]
*[[MT. RUSH]]
*[[GREEN STREET]]
*[[JUBILEE STREET]]
*[[WALKER]]
*[[CONCORD]]
*[[BROTHERS ESTATE]]
*[[BELVIDERE]]
*[[CORNET'S WALK]]
*[[EDWARD STREET, GOUYAVE]]
*[[SCHOOL LANE, GOUYAVE]]
*[[DOUGALDSTON]]
*[[HILL'S VIEW]]
*[[ROSEMOUNT]]
*[[LANGTON ROAD, GOUYAVE]]
*[[RENNIE]]
*[[MT. GRANBY]]
*[[COTTON BAILY]]
*[[GLEBE STREET, SAUTEURS]]
*[[POINTFIELD]]
*[[LEVERA]]
*[[BOTANICAL GARDENS]]
*[[ST. JOHN'S STREET]]
*[[LA RESOURCE]]
*[[INDUSTRY]]
*[[DUQUESNE]]
*[[QUEEN STREET]]
*[[FAIR FIELD ROAD]]
*[[MT. EDGE COMBE]]
*[[TUILLIERIES]]
*[[PADDOCK]]
*[[CHEMIN RIVER]]
*[[MT. AGNES]]
*[[EPPIN FOREST]]
*[[CHAMPFLEURS]]
*[[NOELSVILLE]]
*[[KAFE BEAU HILL]]
*[[BATTLE HILL]]
*[[TAYBAKAY]]
*[[PERSEVERANCE]]
*[[GOUYAVE]]
*[[BACK STREET, TEMPE]]
*[[CLARKS COAT BAY]]
*[[WELCOME]]
*[[CALABASH ALLEY]]
*[[LA FEMME]]
*[[HILL VIEW, GOUYAVE]]
*[[NEW STREET, GOUYAVE]]
*[[NEW STREET, GOUYAVE]]
*[[NEW SREET]]
*[[EDWARD STREET, GOUYAVE]]
*[[LANGTON ROAD]]
*[[VICTORIA ROAD, GOUYAVE]]
*[[ST BENOIT STREET, GOUYAVE]]
*[[RIVER LANE, GOUYAVE ESTATE]]
*[[VICTORIA ROAD, GOUYAVE]]
*[[HILLS VIEW, GOUYAVE]]
*[[LANGTON ROAD, GOUYAVE]]
*[[BOYKE'S LANE]]
*[[ST. FRANCIS STREET]]
*[[BOYKES LANE, GOUYAVE]]
*[[CORNETS WALK, GOUYAVE]]
*[[MT. NESBIT]]
*[[MITCHELL'S LANE]]
*[[MARKET HILL]]
*[[OBSERVATORY ROAD]]
*[[LONG GUTTER]]
*[[COX ALLEY]]
*[[BRIGG'S ALLEY]]
*[[TANTEEN, TANTEEN TERRACE]]
*[[CROSS STREET]]
*[[BAIN'S ALLEY]]
*[[TYRREL STREET]]
*[[CHURCH STREET]]
*[[MT. WHELDALE]]
*[[THE VILLA, LONG GUTTER]]
*[[DE VILLA, BLACKBURN ALLEY]]
*[[HADDON SMITH STREET]]
*[[BLACKBURN ALLEY]]
*[[MUNRO STREET]]
*[[GROSS POINT VILLA]]
*[[TAYLOR]]
*[[RESOURCE, RESOURCE]]
*[[HENRY STREET]]
*[[GALL STREET]]
*[[CHURCH HILL ROAD]]
*[[BONAIR ROAD, BONAIR]]
*[[CRUICKSHANK ROAD, VICTORIA]]
*[[FAIR FIELD ROAD, VICTORIA]]
*[[BATHWAY]]
*[[BAY ROAD, SAUTEURS]]
*[[NULL]]
*[[TOP HILL, HERMITAGE]]
*[[DUQUESNE, DUQUESNE]]
*[[DE BLANDEAU]]
*[[CASTIGNE]]
*[[GLEBE LAND, SAUTEURS]]
*[[MAIN STREET, SAUTEURS]]
*[[MAHOUT, SAUTEURS]]
*[[UPPER HARFORD VILLAGE]]
*[[BLAIZE]]
*[[SALISBURY STREET, SAUTEURS]]
*[[CALLISTE SETTLEMENT]]
*[[GUPO]]
*[[HILL TOP, CALIVIGNY]]
*[[MT. RODNEY]]
*[[DUQUENSE]]
*[[LA FORTUNE BRIDGE]]
*[[RED HEAD STREET, SAUTEURS]]
*[[HIGH ST, SAUTEURS]]
*[[DE SILLES]]
*[[HILL STREET, SAUTEURS]]
*[[QUEEN STREET, VICTORIA]]
*[[MUNROE STREET, VICTORIA]]
*[[CENTRAL DEPRADINE, GOUYAVE]]
*[[DOTHAN ESTATE]]
*[[LOWER DEPRADINE, GOUYAVE]]
*[[MT. FELIX]]
*[[MT. PLASIR]]
*[[SCHOOL LANE]]
*[[ST. DOMINIC'S ST.]]
*[[HILLSVIEW, GOUYAVE]]
*[[ST PETERS STREET, GOUYAVE]]
*[[ST. BENOIT'S STREET]]
*[[VICTORIA ROAD]]
*[[ST DOMINIC STREET, GOUYAVE]]
*[[FERGUSONS LANE, GOUYAVE]]
*[[RADIX]]
*[[ST FRANCIS, GOUYAVE]]
*[[CORNWALL STREET, SAUTEURS]]
*[[HIGH STREET, SAUTEURS]]
*[[ST PETERS, GOUYAVE]]
*[[THE VILLA, SAUTEURS]]
*[[SALISBURY STREET, SAUTEURS]]
*[[RED HEAD STREET, SAUTEURS]]
*[[RIVER LANE, GOUYAVE]]
*[[TRANQUIL LANE]]
*[[CHANTILLY, MT. GAY]]
*[[UPPER DEPRADINE, GOUYAVE]]
*[[MORNE JALOUX]]
*[[CHAPEL'S LANE]]
*[[MALIGNON]]
*[[MC NELLIE ALLEY, SAUTEURS]]
*[[SALISBURY RD, SAUTEURS]]
*[[REDHEAD ST, SAUTEURS]]
*[[MC NELLY ALLEY, SAUTEURS]]
*[[CEDARS]]
*[[BOCAGE, BONAIR]]
*[[BONAIR, NULL]]
*[[DIXIE, SPRINGS]]
*[[APRES TOUTE]]
*[[ST DOMINIC, GOUYAVE]]
*[[HIGH GATE, MORNE FENDUE]]
*[[ADAM'S ALLEY]]
*[[THE VILLA, THE ROCK]]
*[[GORE STREET]]
*[[MELVILLE STREET]]
*[[THE STONES, NEW HAMPSHIRE]]
*[[RAVINE, MT. GAY]]
*[[MAYANN, CONSTANTINE]]
*[[BEN JONES STREET]]
*[[CHADDEAU]]
*[[QUEEN STREET, ST. JOHN'S]]
*[[VINEYARD]]
*[[BACK STRRET, TEMPE]]
*[[CODRONA]]
*[[BACK STREET]]
*[[MANGO, NEW HAMPSHIRE]]
*[[MT. ANON]]
*[[SAMUELS AVENUE]]
*[[SEATON BROWNE STREET]]
*[[SAMARITAN, DIEGO PIECE]]
*[[MUNRO STREET, VICTORIA]]
*[[EDGEMOND POINT]]
*[[MC NELLIE ALLEY, SAUTEURS]]
*[[CHANTILLY, TEMPE]]
*[[RED GATE]]
*[[VICTORIA]]
*[[LA TANTE, GLEBE LAND]]
*[[LA CALOME, NEW WESTERHALL]]
*[[TOUS CONGO]]
*[[PENNY RETREAT]]
*[[CARNAL ROAD]]
*[[MT ST ERVANS, L'ESTERRIE]]
*[[BOCAGE]]
*[[MAUCHETTE]]
*[[NETTLE POINT]]
*[[PETIT BOCAGE]]
*[[MON REPOS]]
*[[MT. EDGECOMBE]]
*[[PETITE BACAYE, NEW]]
*[[MARLMOUNT, GLEBE LAND]]
*[[DEHAR, GLEBE LAND]]
*[[MC NELLY ALLY, SAUTEURS]]
*[[TETMUND]]
*[[SAUTEURS, MAHOUT]]
*[[OTTLEY'S LANE]]
*[[10 CIRCULAR DRIVE, FREQUENTE]]
*[[THE STONES, GRAND ANSE]]
*[[MCNEILLY ALLEY, SAUTEURS]]
*[[SUNSET VALLEY, POINT SALINES]]
*[[FALL EDGE, GRAND ANSE]]
*[[HILLS ROAD]]
*[[GREY STONE]]
*[[TRYNE ALLEY]]
*[[TURTLE BACK DRIVE, LANCE AUX]]
*[[HILLSTREET, SAUTEURS]]
*[[HARFORD VILLAGE, LOWER]]
*[[ST. CYR]]
*[[ST DAVID STREET, VICTORIA]]
*[[GALL STREET, VICTORIA]]
*[[CHANTILLY]]
*[[ST JOHN STREET, VICTORIA]]
*[[GRAND ETANG ROAD]]
*[[REDMUD]]
*[[CRUICK SHANK, VICTORIA]]
*[[THE STONS, GRAND ANSE]]
*[[BAMBOO]]
*[[DIAMOND STREET, VICTORIA]]
*[[WILLIS]]
*[[CLARKES COURT BAY,]]
*[[CLARKE COURT BAY, WOODLANDS]]
*[[MBHIGHWAY, GRAND ANSE]]
*[[M H HIGHWAY, GRAND ANSE]]
*[[M B HIGHWAY, GRAND ANSE]]
*[[YOUNG STREET]]
*[[HILLSBOROUGH STREET]]
*[[GREY STONE, BELMONT]]
*[[CAFE, WOODLANDS]]
*[[MC NEILLY, SAUTEURS]]
*[[SLINGER STREET, HADDON SMITH]]
*[[BON ACCORD ESTATE]]
*[[HALIFAX STREET]]
*[[MAHOUT, ROSE HILL]]
*[[MAIN STREEET, SAUTEURS]]
*[[GLEBE SREET, SAUTEURS]]
*[[GLEBLAND, SAUTEURS]]
*[[PETITE ETANG]]
*[[MAIN-STREET SAUTEURS,]]
*[[UPPER CARRIERE]]
*[[RED HEAD STREET, LA FORTUNE]]
*[[JUMBIE]]
*[[MARINE VILLA]]
*[[CHANCERY STREET, MUNRO]]
*[[DUSTY HIGHWAY, GRAND ANSE]]
*[[CAFE, CAFÉ]]
*[[MYANN, CONSTANTINE]]
*[[SAMUEL AVENUE, CALIVIGNY]]
*[[MONGO ROAD, GOUYAVE ESTATE]]
*[[RIVER ROAD, MT. RUSH]]
*[[CALRKS COURT BAY, WOODLANDS]]
*[[COCOA ROAD, MARIAN]]
*[[MC NEILLY ALLEY, MARLI]]
*[[SLINGER STREET, ST. DAVID]]
*[[WHITE HALL, PARK LANE]]
*[[GRAND ANSE ESTATE, LANCE AUX]]
*[[MT ST ERVANS, LA DIGUE]]
*[[MAURICE BISHOP HWY, GRAND]]
*[[WATERLOO]]
*[[FERGUSON'S LANE]]
*[[GLEBE LAND, SAUTEURS]]
*[[BAY ROAD, SAUTEURS]]
*[[GLEBE STREET, SAUTEURS]]
f32ab81750bb7da25405cc4f69e27a651800a398
26
25
2022-07-19T02:34:50Z
Wikiricky
1
Added list of parishes
wikitext
text/x-wiki
This is a list of populated villages, towns, settlements, and streets in Grenada. Many of the village names in Grenada are based upon the names of plantations. Grenada has 7 Parishes
==[[St.George,Grenada|St.George]]==
{{div col|colwidth=30em}}
*[[ANNANDALE,St.George,Grenada|ANNANDALE]]
*[[ARCHIBALD AVENUE,St.George,Grenada|ARCHIBALD AVENUE]]
*[[BACK STREET, TEMPE,St.George,Grenada|BACK STREET, TEMPE]]
*[[BAIN'S ALLEY,St.George,Grenada|BAIN'S ALLEY]]
*[[BAMBOO,St.George,Grenada|BAMBOO]]
*[[BEAULIEU,St.George,Grenada|BEAULIEU]]
*[[BELMONT,St.George,Grenada|BELMONT]]
*[[BLACK FOREST, VENDOME,St.George,Grenada|BLACK FOREST, VENDOME]]
*[[BLACKBURN ALLEY,St.George,Grenada|BLACKBURN ALLEY]]
*[[BOCA,St.George,Grenada|BOCA]]
*[[BON ACCORD ESTATE,St.George,Grenada|BON ACCORD ESTATE]]
*[[BOTANICAL GARDENS,St.George,Grenada|BOTANICAL GARDENS]]
*[[BRIGG'S ALLEY,St.George,Grenada|BRIGG'S ALLEY]]
*[[BRIZAN,St.George,Grenada|BRIZAN]]
*[[CAFE,St.George,Grenada|CAFE]]
*[[CALABASH ALLEY,St.George,Grenada|CALABASH ALLEY]]
*[[CALIVIGNY,St.George,Grenada|CALIVIGNY]]
*[[CALLISTE,St.George,Grenada|CALLISTE]]
*[[CARENAGE,St.George,Grenada|CARENAGE]]
*[[CARRIERE,St.George,Grenada|CARRIERE]]
*[[CEMETERY HILL,St.George,Grenada|CEMETERY HILL]]
*[[CHANTILLY, TEMPE,St.George,Grenada|CHANTILLY, TEMPE]]
*[[CHEMIN RIVER,St.George,Grenada|CHEMIN RIVER]]
*[[CHERRY HILL,St.George,Grenada|CHERRY HILL]]
*[[CHURCH STREET,St.George,Grenada|CHURCH STREET]]
*[[CIRCULAR DRIVE, FREQUENTE,St.George,Grenada|CIRCULAR DRIVE, FREQUENTE]]
*[[CLARKES COURT BAY,,St.George,Grenada|CLARKES COURT BAY,]]
*[[COCOA ROAD, MARIAN,St.George,Grenada|COCOA ROAD, MARIAN]]
*[[CONFER,St.George,Grenada|CONFER]]
*[[CONSTANTINE,St.George,Grenada|CONSTANTINE]]
*[[CORBEAU TOWN,St.George,Grenada|CORBEAU TOWN]]
*[[COX ALLEY,St.George,Grenada|COX ALLEY]]
*[[CREIGHTON,St.George,Grenada|CREIGHTON]]
*[[CROSS STREET,St.George,Grenada|CROSS STREET]]
*[[D'ARBEAU,St.George,Grenada|D'ARBEAU]]
*[[DE FAUX,St.George,Grenada|DE FAUX]]
*[[DE VILLA, BLACKBURN ALLEY,St.George,Grenada|DE VILLA, BLACKBURN ALLEY]]
*[[DIXIE, SPRINGS,St.George,Grenada|DIXIE, SPRINGS]]
*[[DUSTY HIGHWAY, GRAND ANSE,St.George,Grenada|DUSTY HIGHWAY, GRAND ANSE]]
*[[EDGEMOND POINT,St.George,Grenada|EDGEMOND POINT]]
*[[FALL EDGE, GRAND ANSE,St.George,Grenada|FALL EDGE, GRAND ANSE]]
*[[FELIX PARK,St.George,Grenada|FELIX PARK]]
*[[FENTON VILLAGE,St.George,Grenada|FENTON VILLAGE]]
*[[FONTENOY,St.George,Grenada|FONTENOY]]
*[[FORT JUEDY,St.George,Grenada|FORT JUEDY]]
*[[FREQUENTE,St.George,Grenada|FREQUENTE]]
*[[GOLF COURSE,St.George,Grenada|GOLF COURSE]]
*[[GOOD HOPE,St.George,Grenada|GOOD HOPE]]
*[[GORE STREET,St.George,Grenada|GORE STREET]]
*[[GRAND ANSE,St.George,Grenada|GRAND ANSE]]
*[[GRAND ANSE ESTATE, LANCE AUX,St.George,Grenada|GRAND ANSE ESTATE, LANCE AUX]]
*[[GRAND ANSE HOUSING SCHEME,St.George,Grenada|GRAND ANSE HOUSING SCHEME]]
*[[GRAND ANSE VALLEY,St.George,Grenada|GRAND ANSE VALLEY]]
*[[GRAND ETANG ROAD,St.George,Grenada|GRAND ETANG ROAD]]
*[[GRAND MAL,St.George,Grenada|GRAND MAL]]
*[[GRANTON,St.George,Grenada|GRANTON]]
*[[GREEN STREET,St.George,Grenada|GREEN STREET]]
*[[GRENVILLE STREET,St.George,Grenada|GRENVILLE STREET]]
*[[GRENVILLE VALE,St.George,Grenada|GRENVILLE VALE]]
*[[GREY STONE, BELMONT,St.George,Grenada|GREY STONE, BELMONT]]
*[[H.A BLAIZE STREET,St.George,Grenada|H.A BLAIZE STREET]]
*[[HADDON SMITH STREET,St.George,Grenada|HADDON SMITH STREET]]
*[[HALIFAX STREET,St.George,Grenada|HALIFAX STREET]]
*[[HAPPY HILL,St.George,Grenada|HAPPY HILL]]
*[[HILL TOP, CALIVIGNY,St.George,Grenada|HILL TOP, CALIVIGNY]]
*[[HILLS ROAD,St.George,Grenada|HILLS ROAD]]
*[[HILLSBOROUGH STREET,St.George,Grenada|HILLSBOROUGH STREET]]
*[[HOPE VALE,St.George,Grenada|HOPE VALE]]
*[[INDEPENDENCE AVENUE,St.George,Grenada|INDEPENDENCE AVENUE]]
*[[JEAN ANGLIAS,St.George,Grenada|JEAN ANGLIAS]]
*[[JUBILEE STREET,St.George,Grenada|JUBILEE STREET]]
*[[JUMBIE,St.George,Grenada|JUMBIE]]
*[[KAFE BEAU HILL,St.George,Grenada|KAFE BEAU HILL]]
*[[LA BORIE,St.George,Grenada|LA BORIE]]
*[[LA MODE,St.George,Grenada|LA MODE]]
*[[LAGOON ROAD,St.George,Grenada|LAGOON ROAD]]
*[[LANCE AUX EPINES,St.George,Grenada|LANCE AUX EPINES]]
*[[LONG GUTTER,St.George,Grenada|LONG GUTTER]]
*[[LOWER MORNE JALOUX,St.George,Grenada|LOWER MORNE JALOUX]]
*[[LOWER WOBURN,St.George,Grenada|LOWER WOBURN]]
*[[LOWTHER'S LANE,St.George,Grenada|LOWTHER'S LANE]]
*[[LUCAS STREET,St.George,Grenada|LUCAS STREET]]
*[[MANGO, NEW HAMPSHIRE,St.George,Grenada|MANGO, NEW HAMPSHIRE]]
*[[MARDIGRAS,St.George,Grenada|MARDIGRAS]]
*[[MARIAN,St.George,Grenada|MARIAN]]
*[[MARKET HILL,St.George,Grenada|MARKET HILL]]
*[[MARRAST HILL,St.George,Grenada|MARRAST HILL]]
*[[MAURICE BISHOP HIGHWAY, GRAND ANSE,St.George,Grenada|MAURICE BISHOP HIGHWAY, GRAND ANSE]]
*[[MAURICE BISHOP HWY, GRAND,St.George,Grenada|MAURICE BISHOP HWY, GRAND]]
*[[MELVILLE STREET,St.George,Grenada|MELVILLE STREET]]
*[[MOLINIERE,St.George,Grenada|MOLINIERE]]
*[[MONT TOUTE,St.George,Grenada|MONT TOUTE]]
*[[MORNE DELICE,St.George,Grenada|MORNE DELICE]]
*[[MORNE JALOUX,St.George,Grenada|MORNE JALOUX]]
*[[MORNE ROUGE,St.George,Grenada|MORNE ROUGE]]
*[[MORTLEY ROAD,St.George,Grenada|MORTLEY ROAD]]
*[[MT. AIRY,St.George,Grenada|MT. AIRY]]
*[[MT. GAY,St.George,Grenada|MT. GAY]]
*[[MT. HARTMAN,St.George,Grenada|MT. HARTMAN]]
*[[MT. MORITZ,St.George,Grenada|MT. MORITZ]]
*[[MT. PARNASSUS,St.George,Grenada|MT. PARNASSUS]]
*[[MT. RUSH,St.George,Grenada|MT. RUSH]]
*[[MT. WHELDALE,St.George,Grenada|MT. WHELDALE]]
*[[OBSERVATORY ROAD,St.George,Grenada|OBSERVATORY ROAD]]
*[[OLD FORT,St.George,Grenada|OLD FORT]]
*[[PADDOCK,St.George,Grenada|PADDOCK]]
*[[PARADE,St.George,Grenada|PARADE]]
*[[PARK LANE,St.George,Grenada|PARK LANE]]
*[[PERSEVERANCE,St.George,Grenada|PERSEVERANCE]]
*[[PETERSFIELD,St.George,Grenada|PETERSFIELD]]
*[[POINT SALINES,St.George,Grenada|POINT SALINES]]
*[[QUEEN'S PARK,St.George,Grenada|QUEEN'S PARK]]
*[[RADIX, MT. PARNASSUS,St.George,Grenada|RADIX, MT. PARNASSUS]]
*[[RAVINE, MT. GAY,St.George,Grenada|RAVINE, MT. GAY]]
*[[RICHMOND HILL,St.George,Grenada|RICHMOND HILL]]
*[[RIVER ROAD,St.George,Grenada|RIVER ROAD]]
*[[ROEBUCK,St.George,Grenada|ROEBUCK]]
*[[SANS SOUCI,St.George,Grenada|SANS SOUCI]]
*[[SCOTT STREET,St.George,Grenada|SCOTT STREET]]
*[[SHENDA,St.George,Grenada|SHENDA]]
*[[SIMMONS STREET,St.George,Grenada|SIMMONS STREET]]
*[[SNUG CORNER,St.George,Grenada|SNUG CORNER]]
*[[SPRING GARDEN,St.George,Grenada|SPRING GARDEN]]
*[[SPRINGS,St.George,Grenada|SPRINGS]]
*[[ST. GEORGE ESTATE,St.George,Grenada|ST. GEORGE ESTATE]]
*[[ST. JUILLE STREET,St.George,Grenada|ST. JUILLE STREET]]
*[[ST.PAUL'S,St.George,Grenada|ST.PAUL'S]]
*[[SUNSET VALLEY, POINT SALINES,St.George,Grenada|SUNSET VALLEY, POINT SALINES]]
*[[TANTEEN, TANTEEN TERRACE,St.George,Grenada|TANTEEN, TANTEEN TERRACE]]
*[[TEMPE,St.George,Grenada|TEMPE]]
*[[THE BOCAS,St.George,Grenada|THE BOCAS]]
*[[THE GREENS,St.George,Grenada|THE GREENS]]
*[[THE LIMES,St.George,Grenada|THE LIMES]]
*[[THE STONES, GRAND ANSE,St.George,Grenada|THE STONES, GRAND ANSE]]
*[[THE STONES, NEW HAMPSHIRE,St.George,Grenada|THE STONES, NEW HAMPSHIRE]]
*[[THE VILLA, LONG GUTTER,St.George,Grenada|THE VILLA, LONG GUTTER]]
*[[TRANQUIL LANE,St.George,Grenada|TRANQUIL LANE]]
*[[TRUE BLUE,St.George,Grenada|TRUE BLUE]]
*[[TRYNE ALLEY,St.George,Grenada|TRYNE ALLEY]]
*[[TURTLE BACK DRIVE, LANCE AUX,St.George,Grenada|TURTLE BACK DRIVE, LANCE AUX]]
*[[TYRREL STREET,St.George,Grenada|TYRREL STREET]]
*[[UPPER MORNE JALOUX,St.George,Grenada|UPPER MORNE JALOUX]]
*[[UPPER WOBURN,St.George,Grenada|UPPER WOBURN]]
*[[VENDOME,St.George,Grenada|VENDOME]]
*[[WELCOME,St.George,Grenada|WELCOME]]
*[[WHITE GUN,St.George,Grenada|WHITE GUN]]
*[[WHITE HALL, PARK LANE,St.George,Grenada|WHITE HALL, PARK LANE]]
*[[WILLIAMSON ROAD,St.George,Grenada|WILLIAMSON ROAD]]
*[[WILLIS,St.George,Grenada|WILLIS]]
*[[WOODLANDS,St.George,Grenada|WOODLANDS]]
*[[WOOLWICH ROAD,St.George,Grenada|WOOLWICH ROAD]]
*[[YOUNG STREET,St.George,Grenada|YOUNG STREET]]
{{div col end}}
==[[St.John,Grenada|St.John]]==
{{div col|colwidth=30em}}
*[[BACK STREET,St.John,Grenada|BACK STREET]]
*[[BELVIDERE,St.John,Grenada|BELVIDERE]]
*[[BLACK BAY,St.John,Grenada|BLACK BAY]]
*[[BOYKES LANE, GOUYAVE,St.John,Grenada|BOYKES LANE, GOUYAVE]]
*[[BROOKLYN,St.John,Grenada|BROOKLYN]]
*[[BROTHERS ESTATE,St.John,Grenada|BROTHERS ESTATE]]
*[[CENTRAL DEPRADINE STREET,St.John,Grenada|CENTRAL DEPRADINE STREET]]
*[[CLOZIER,St.John,Grenada|CLOZIER]]
*[[CONCORD,St.John,Grenada|CONCORD]]
*[[CORNETS WALK, GOUYAVE,St.John,Grenada|CORNETS WALK, GOUYAVE]]
*[[COTTON BAILY,St.John,Grenada|COTTON BAILY]]
*[[D LANCE, UPPER DEPRADINE,St.John,Grenada|D LANCE, UPPER DEPRADINE]]
*[[DEPONTHIEU STREET,St.John,Grenada|DEPONTHIEU STREET]]
*[[DOUGALDSTON,St.John,Grenada|DOUGALDSTON]]
*[[DUMFRIES,St.John,Grenada|DUMFRIES]]
*[[EDWARD STREET, GOUYAVE,St.John,Grenada|EDWARD STREET, GOUYAVE]]
*[[FERGUSON'S LANE,St.John,Grenada|FERGUSON'S LANE]]
*[[FLORIDA,St.John,Grenada|FLORIDA]]
*[[GOUYAVE ESTATE,St.John,Grenada|GOUYAVE ESTATE]]
*[[GRAND ROY,St.John,Grenada|GRAND ROY]]
*[[HILLSVIEW, GOUYAVE,St.John,Grenada|HILLSVIEW, GOUYAVE]]
*[[LANGTON ROAD, GOUYAVE,St.John,Grenada|LANGTON ROAD, GOUYAVE]]
*[[LOWER DEPRADINE STREET,St.John,Grenada|LOWER DEPRADINE STREET]]
*[[MARIGOT,St.John,Grenada|MARIGOT]]
*[[MITCHELL'S LANE,St.John,Grenada|MITCHELL'S LANE]]
*[[MONGO ROAD, GOUYAVE ESTATE,St.John,Grenada|MONGO ROAD, GOUYAVE ESTATE]]
*[[MT. GRANBY,St.John,Grenada|MT. GRANBY]]
*[[MT. NESBIT,St.John,Grenada|MT. NESBIT]]
*[[NEW STREET, EDWARD STREET,St.John,Grenada|NEW STREET, EDWARD STREET]]
*[[NEW STREET, GOUYAVE,St.John,Grenada|NEW STREET, GOUYAVE]]
*[[PALMISTE,St.John,Grenada|PALMISTE]]
*[[QUEEN STREET, ST. JOHN'S,St.John,Grenada|QUEEN STREET, ST. JOHN'S]]
*[[RENNIE,St.John,Grenada|RENNIE]]
*[[RIVER LANE, GOUYAVE ESTATE,St.John,Grenada|RIVER LANE, GOUYAVE ESTATE]]
*[[RIVER LANE, GOUYAVE,St.John,Grenada|RIVER LANE, GOUYAVE]]
*[[ROSEMOUNT,St.John,Grenada|ROSEMOUNT]]
*[[SCHOOL LANE, GOUYAVE,St.John,Grenada|SCHOOL LANE, GOUYAVE]]
*[[ST BENOIT STREET, GOUYAVE,St.John,Grenada|ST BENOIT STREET, GOUYAVE]]
*[[ST DOMINIC STREET, GOUYAVE,St.John,Grenada|ST DOMINIC STREET, GOUYAVE]]
*[[ST DOMINIC, GOUYAVE,St.John,Grenada|ST DOMINIC, GOUYAVE]]
*[[ST FRANCIS, GOUYAVE,St.John,Grenada|ST FRANCIS, GOUYAVE]]
*[[ST PETERS STREET, GOUYAVE,St.John,Grenada|ST PETERS STREET, GOUYAVE]]
*[[ST PETERS, GOUYAVE,St.John,Grenada|ST PETERS, GOUYAVE]]
*[[ST. FRANCIS STREET,St.John,Grenada|ST. FRANCIS STREET]]
*[[ST. PETER STREET,St.John,Grenada|ST. PETER STREET]]
*[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]]
*[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]]
*[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]]
*[[UPPER DEPRADINE STREET,St.John,Grenada|UPPER DEPRADINE STREET]]
*[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]]
*[[VICTORIA ROAD, GOUYAVE,St.John,Grenada|VICTORIA ROAD, GOUYAVE]]
*[[VICTORIA STREET,St.John,Grenada|VICTORIA STREET]]
*[[WATERLOO,St.John,Grenada|WATERLOO]]
{{div col end}}
==[[St.David,Grenada|St.David]]==
{{div col|colwidth=30em}}
*[[APRES TOUTE,St.David,Grenada|APRES TOUTE]]
*[[BAILLES BACOLET,St.David,Grenada|BAILLES BACOLET]]
*[[BEATON,St.David,Grenada|BEATON]]
*[[BELLE ISLE,St.David,Grenada|BELLE ISLE]]
*[[CHAMPFLEURS,St.David,Grenada|CHAMPFLEURS]]
*[[COALS GAPS,St.David,Grenada|COALS GAPS]]
*[[CORINTH,St.David,Grenada|CORINTH]]
*[[DUDMAR,St.David,Grenada|DUDMAR]]
*[[EPPIN FOREST,St.David,Grenada|EPPIN FOREST]]
*[[LA CALOHME,St.David,Grenada|LA CALOHME]]
*[[LA CALOME, NEW WESTERHALL,St.David,Grenada|LA CALOME, NEW WESTERHALL]]
*[[LA FEMME,St.David,Grenada|LA FEMME]]
*[[LA FLORETTA,St.David,Grenada|LA FLORETTA]]
*[[LA PASTORA,St.David,Grenada|LA PASTORA]]
*[[LA SAGESSE,St.David,Grenada|LA SAGESSE]]
*[[LA TANTE,St.David,Grenada|LA TANTE]]
*[[MARLMOUNT,St.David,Grenada|MARLMOUNT]]
*[[MARLMOUNT, GLEBE LAND,St.David,Grenada|MARLMOUNT, GLEBE LAND]]
*[[MAYANN, CONSTANTINE,St.David,Grenada|MAYANN, CONSTANTINE]]
*[[MINORCA,St.David,Grenada|MINORCA]]
*[[MON REPOS,St.David,Grenada|MON REPOS]]
*[[MT. AGNES,St.David,Grenada|MT. AGNES]]
*[[MT. DISIRE,St.David,Grenada|MT. DISIRE]]
*[[MYANN, CONSTANTINE,St.David,Grenada|MYANN, CONSTANTINE]]
*[[NEW WESTERHALL,St.David,Grenada|NEW WESTERHALL]]
*[[OLD WESTERHALL,St.David,Grenada|OLD WESTERHALL]]
*[[PERDMONTEMPS,St.David,Grenada|PERDMONTEMPS]]
*[[PETITE BACAYE, NEW,St.David,Grenada|PETITE BACAYE, NEW]]
*[[PETITE ESPERANCE,St.David,Grenada|PETITE ESPERANCE]]
*[[PETITE ETANG,St.David,Grenada|PETITE ETANG]]
*[[POMME ROSE,St.David,Grenada|POMME ROSE]]
*[[PROVIDENCE,St.David,Grenada|PROVIDENCE]]
*[[RED GATE,St.David,Grenada|RED GATE]]
*[[REDMUD,St.David,Grenada|REDMUD]]
*[[REQUIN,St.David,Grenada|REQUIN]]
*[[SLINGER STREET,St.David,Grenada|SLINGER STREET]]
*[[SYRACUSE,St.David,Grenada|SYRACUSE]]
*[[THEBAIDE,St.David,Grenada|THEBAIDE]]
*[[UPPER LAURA,St.David,Grenada|UPPER LAURA]]
*[[VINCENNES,St.David,Grenada|VINCENNES]]
*[[WESTERHALL POINT,St.David,Grenada|WESTERHALL POINT]]
*[[WINDSOR,St.David,Grenada|WINDSOR]]
*[[WINDSOR FOREST,St.David,Grenada|WINDSOR FOREST]]
{{div col end}}
==[[Carriacou and Petite Martinique,Grenada|Carriacou and Petite Martinique]]==
{{div col|colwidth=30em}}
*[[BEAUSEJOUR,Carriacou,Grenada|BEAUSEJOUR]]
*[[BELAIR,Carriacou,Grenada|BELAIR]]
*[[BELLE VUE,Carriacou,Grenada|BELLE VUE]]
*[[BELMONT,Carriacou,Grenada|BELMONT]]
*[[BOGLES,Carriacou,Grenada|BOGLES]]
*[[BRUNSWICK,Carriacou,Grenada|BRUNSWICK]]
*[[CHURCH STREET, HILLSBOROUGH,Carriacou,Grenada|CHURCH STREET, HILLSBOROUGH]]
*[[CRAIGSTON,Carriacou,Grenada|CRAIGSTON]]
*[[DOVER,Carriacou,Grenada|DOVER]]
*[[HARVEY VALE,Carriacou,Grenada|HARVEY VALE]]
*[[HILLSBOROUGH,Carriacou,Grenada|HILLSBOROUGH]]
*[[L'ESTERRE,Carriacou,Grenada|L'ESTERRE]]
*[[LAURISTON,Carriacou,Grenada|LAURISTON]]
*[[LIMLAIR,Carriacou,Grenada|LIMLAIR]]
*[[MT ST ERVANS, L'ESTERRIE,Carriacou,Grenada|MT ST ERVANS, L'ESTERRIE]]
*[[MT. ROYAL,Carriacou,Grenada|MT. ROYAL]]
*[[PROSPECT HALL,Carriacou,Grenada|PROSPECT HALL]]
*[[SIX ROADS,Carriacou,Grenada|SIX ROADS]]
*[[TOP HILL,Carriacou,Grenada|TOP HILL]]
*[[TOP HILL, HERMITAGE,Carriacou,Grenada|TOP HILL, HERMITAGE]]
*[[WINDWARD,Carriacou,Grenada|WINDWARD]]
*[[PETIT MARTINIQUE,PETIT MARTINIQUE,Grenada|PETIT MARTINIQUE]]
{{div col end}}
==[[St.Andrew,Grenada|St.Andrew]]==
{{div col|colwidth=30em}}
*[[MT. FANN,St. Andrew,Grenada|MT. FANN]]
*[[ADELPHI,St.Andrew,Grenada|ADELPHI]]
*[[AHOMA,St.Andrew,Grenada|AHOMA]]
*[[BACK STRRET, TEMPE,St.Andrew,Grenada|BACK STRRET, TEMPE]]
*[[BALTHAZAR,St.Andrew,Grenada|BALTHAZAR]]
*[[BATTLE HILL,St.Andrew,Grenada|BATTLE HILL]]
*[[BEAUREGARD,St.Andrew,Grenada|BEAUREGARD]]
*[[BELLE VUE SOUTH,St.Andrew,Grenada|BELLE VUE SOUTH]]
*[[BELLEVUE,St.Andrew,Grenada|BELLEVUE]]
*[[BELVEDERE,St.Andrew,Grenada|BELVEDERE]]
*[[BEN JONES STREET,St.Andrew,Grenada|BEN JONES STREET]]
*[[BIRCHGROVE,St.Andrew,Grenada|BIRCHGROVE]]
*[[BYELANDS,St.Andrew,Grenada|BYELANDS]]
*[[CANAL ROAD,St.Andrew,Grenada|CANAL ROAD]]
*[[CARNAL ROAD,St.Andrew,Grenada|CARNAL ROAD]]
*[[CARRIERE,St.Andrew,Grenada|CARRIERE]]
*[[CARRUTH,St.Andrew,Grenada|CARRUTH]]
*[[CHAPEL ROAD,St.Andrew,Grenada|CHAPEL ROAD]]
*[[COCOA ROAD,St.Andrew,Grenada|COCOA ROAD]]
*[[CODRONA,St.Andrew,Grenada|CODRONA]]
*[[CONFERENCE,St.Andrew,Grenada|CONFERENCE]]
*[[COOKHILL ROAD,St.Andrew,Grenada|COOKHILL ROAD]]
*[[CROCHU,St.Andrew,Grenada|CROCHU]]
*[[DE BLANDEAU,St.Andrew,Grenada|DE BLANDEAU]]
*[[DUNFERMLINE,St.Andrew,Grenada|DUNFERMLINE]]
*[[FORD HILL ROAD,St.Andrew,Grenada|FORD HILL ROAD]]
*[[GEORGE V. STREET,St.Andrew,Grenada|GEORGE V. STREET]]
*[[GLADSTONE ROAD,St.Andrew,Grenada|GLADSTONE ROAD]]
*[[GOUYAVE,St.Andrew,Grenada|GOUYAVE]]
*[[GRAND BACOLET,St.Andrew,Grenada|GRAND BACOLET]]
*[[GRAND BRAS,St.Andrew,Grenada|GRAND BRAS]]
*[[GRIFFIN LANE,St.Andrew,Grenada|GRIFFIN LANE]]
*[[HARFORD VILLAGE,St.Andrew,Grenada|HARFORD VILLAGE]]
*[[HARFORD VILLAGE, LOWER,St.Andrew,Grenada|HARFORD VILLAGE, LOWER]]
*[[HOPE,St.Andrew,Grenada|HOPE]]
*[[HOPE CITY,St.Andrew,Grenada|HOPE CITY]]
*[[LA DIGUE,St.Andrew,Grenada|LA DIGUE]]
*[[LA FILLETTE,St.Andrew,Grenada|LA FILLETTE]]
*[[LA POTERIE,St.Andrew,Grenada|LA POTERIE]]
*[[LOWER CAPITOL,St.Andrew,Grenada|LOWER CAPITOL]]
*[[LOWER HARFORD VILLAGE,St.Andrew,Grenada|LOWER HARFORD VILLAGE]]
*[[MAHOUT,St.Andrew,Grenada|MAHOUT]]
*[[MAMMA CANNES,St.Andrew,Grenada|MAMMA CANNES]]
*[[MARQUIS,St.Andrew,Grenada|MARQUIS]]
*[[MC NELLIE ALLEY, SAUTEURS,St.Andrew,Grenada|MC NELLIE ALLEY, SAUTEURS]]
*[[MC NEILLY, SAUTEURS,St.Andrew,Grenada|MC NEILLY, SAUTEURS]]
*[[MELDRUM,St.Andrew,Grenada|MELDRUM]]
*[[MIRABEAU,St.Andrew,Grenada|MIRABEAU]]
*[[MORNE LOUNGE,St.Andrew,Grenada|MORNE LOUNGE]]
*[[MOYAH,St.Andrew,Grenada|MOYAH]]
*[[MT ST ERVANS, LA DIGUE,St.Andrew,Grenada|MT ST ERVANS, LA DIGUE]]
*[[MT. CARMEL,St.Andrew,Grenada|MT. CARMEL]]
*[[MT. HORNE,St.Andrew,Grenada|MT. HORNE]]
*[[MT. PLEASANT,St.Andrew,Grenada|MT. PLEASANT]]
*[[MUNICH,St.Andrew,Grenada|MUNICH]]
*[[NEW HAMPSHIRE,St.Andrew,Grenada|NEW HAMPSHIRE]]
*[[NOELSVILLE,St.Andrew,Grenada|NOELSVILLE]]
*[[PARACLETE,St.Andrew,Grenada|PARACLETE]]
*[[PARADISE,St.Andrew,Grenada|PARADISE]]
*[[PEARLS,St.Andrew,Grenada|PEARLS]]
*[[PLATEAU,St.Andrew,Grenada|PLATEAU]]
*[[PLEASANCE,St.Andrew,Grenada|PLEASANCE]]
*[[POST ROYAL,St.Andrew,Grenada|POST ROYAL]]
*[[RETREAT,St.Andrew,Grenada|RETREAT]]
*[[RICHMOND,St.Andrew,Grenada|RICHMOND]]
*[[RIVULET LANE,St.Andrew,Grenada|RIVULET LANE]]
*[[SABB,St.Andrew,Grenada|SABB]]
*[[SALISBURY ROAD,St.Andrew,Grenada|SALISBURY ROAD]]
*[[SAMUEL AVENUE, CALIVIGNY,St.Andrew,Grenada|SAMUEL AVENUE, CALIVIGNY]]
*[[SEATON BROWNE STREET,St.Andrew,Grenada|SEATON BROWNE STREET]]
*[[SEATON JAMES STREET,St.Andrew,Grenada|SEATON JAMES STREET]]
*[[SENDALL STREET,St.Andrew,Grenada|SENDALL STREET]]
*[[SIMON,St.Andrew,Grenada|SIMON]]
*[[SNELL HALL,St.Andrew,Grenada|SNELL HALL]]
*[[SOUBISE,St.Andrew,Grenada|SOUBISE]]
*[[ST. CLOUDS,St.Andrew,Grenada|ST. CLOUDS]]
*[[ST. JAMES,St.Andrew,Grenada|ST. JAMES]]
*[[ST. JOHNS,St.Andrew,Grenada|ST. JOHNS]]
*[[TELESCOPE,St.Andrew,Grenada|TELESCOPE]]
*[[TIVOLI,St.Andrew,Grenada|TIVOLI]]
*[[TUILLIERIES,St.Andrew,Grenada|TUILLIERIES]]
*[[UNION,St.Andrew,Grenada|UNION]]
*[[UPPER CAPITOL,St.Andrew,Grenada|UPPER CAPITOL]]
*[[VILLAGE ROAD,St.Andrew,Grenada|VILLAGE ROAD]]
*[[WALKER,St.Andrew,Grenada|WALKER]]
{{div col end}}
==[[St.Mark,Grenada|St.Mark]]==
{{div col|colwidth=30em}}
*[[BEVERLY LANE, MADEYS,St.Mark,Grenada|BEVERLY LANE, MADEYS]]
*[[BOCAGE,St.Mark,Grenada|BOCAGE]]
*[[BOCAGE, BONAIR,St.Mark,Grenada|BOCAGE, BONAIR]]
*[[BONAIR,St.Mark,Grenada|BONAIR]]
*[[BONIAR ROAD, BONAIR,St.Mark,Grenada|BONIAR ROAD, BONAIR]]
*[[CHARLOTTE VALE,St.Mark,Grenada|CHARLOTTE VALE]]
*[[COAST GUARD,St.Mark,Grenada|COAST GUARD]]
*[[CRUICKSHANK ROAD,St.Mark,Grenada|CRUICKSHANK ROAD]]
*[[CRUICKSHANK ROAD, VICTORIA,St.Mark,Grenada|CRUICKSHANK ROAD, VICTORIA]]
*[[DARVEY,St.Mark,Grenada|DARVEY]]
*[[DE VILLA,St.Mark,Grenada|DE VILLA]]
*[[DIAMOND ESTATE,St.Mark,Grenada|DIAMOND ESTATE]]
*[[DIAMOND STREET, VICTORIA,St.Mark,Grenada|DIAMOND STREET, VICTORIA]]
*[[DIEGO PIECE,St.Mark,Grenada|DIEGO PIECE]]
*[[DUQUESNE,St.Mark,Grenada|DUQUESNE]]
*[[FAIR FIELD ROAD, VICTORIA,St.Mark,Grenada|FAIR FIELD ROAD, VICTORIA]]
*[[GALL STREET, VICTORIA,St.Mark,Grenada|GALL STREET, VICTORIA]]
*[[GROSS POINT, GROSS POINT VILLA,St.Mark,Grenada|GROSS POINT, GROSS POINT VILLA]]
*[[HARMONY HALL,St.Mark,Grenada|HARMONY HALL]]
*[[INDUSTRY,St.Mark,Grenada|INDUSTRY]]
*[[LA RESOURCE,St.Mark,Grenada|LA RESOURCE]]
*[[MARAN,St.Mark,Grenada|MARAN]]
*[[MT. EDGECOMBE,St.Mark,Grenada|MT. EDGECOMBE]]
*[[MUNRO STREET, VICTORIA,St.Mark,Grenada|MUNRO STREET, VICTORIA]]
*[[NON-PARIEL,St.Mark,Grenada|NON-PARIEL]]
*[[PETIT BOCAGE,St.Mark,Grenada|PETIT BOCAGE]]
*[[QUEEN STREET, VICTORIA,St.Mark,Grenada|QUEEN STREET, VICTORIA]]
*[[RESOURCE,St.Mark,Grenada|RESOURCE]]
*[[RESOURCE, RESOURCE,St.Mark,Grenada|RESOURCE, RESOURCE]]
*[[RIVER SALLEE,St.Mark,Grenada|RIVER SALLEE]]
*[[SAMARITAN,St.Mark,Grenada|SAMARITAN]]
*[[SAMARITAN, DIEGO PIECE,St.Mark,Grenada|SAMARITAN, DIEGO PIECE]]
*[[ST DAVID STREET, VICTORIA,St.Mark,Grenada|ST DAVID STREET, VICTORIA]]
*[[ST JOHN STREET, VICTORIA,St.Mark,Grenada|ST JOHN STREET, VICTORIA]]
*[[STEWAD COTTAGE,St.Mark,Grenada|STEWAD COTTAGE]]
*[[VICTORIA,St.Mark,Grenada|VICTORIA]]
{{div col end}}
==[[St.Patrick,Grenada|St.Patrick]]==
{{div col|colwidth=30em}}
*[[BATHWAY,St.Patrick,Grenada|BATHWAY]]
*[[BAY ROAD, SAUTEURS,St.Patrick,Grenada|BAY ROAD, SAUTEURS]]
*[[BAY ROAD, SAUTEURS,St.Patrick,Grenada|BAY ROAD, SAUTEURS]]
*[[CHANTIMELLE,St.Patrick,Grenada|CHANTIMELLE]]
*[[CROSS STREET, SAUTEURS,St.Patrick,Grenada|CROSS STREET, SAUTEURS]]
*[[GLEBE LAND, SAUTEURS,St.Patrick,Grenada|GLEBE LAND, SAUTEURS]]
*[[GLEBE STREET, SAUTEURS,St.Patrick,Grenada|GLEBE STREET, SAUTEURS]]
*[[HERMITAGE,St.Patrick,Grenada|HERMITAGE]]
*[[HIGH GATE, MORNE FENDUE,St.Patrick,Grenada|HIGH GATE, MORNE FENDUE]]
*[[HIGH STREET, SAUTEURS,St.Patrick,Grenada|HIGH STREET, SAUTEURS]]
*[[HILL STREET, SAUTEURS,St.Patrick,Grenada|HILL STREET, SAUTEURS]]
*[[LA FORTUNE,St.Patrick,Grenada|LA FORTUNE]]
*[[LA TASTE,St.Patrick,Grenada|LA TASTE]]
*[[LEVERA,St.Patrick,Grenada|LEVERA]]
*[[MAHOUT, ROSE HILL,St.Patrick,Grenada|MAHOUT, ROSE HILL]]
*[[MAIN STREET, SAUTEURS,St.Patrick,Grenada|MAIN STREET, SAUTEURS]]
*[[MARLI,St.Patrick,Grenada|MARLI]]
*[[MC NEILLY ALLEY, MARLI,St.Patrick,Grenada|MC NEILLY ALLEY, MARLI]]
*[[MC NELLIE ALLEY, SAUTEURS,St.Patrick,Grenada|MC NELLIE ALLEY, SAUTEURS]]
*[[MORNE FENDUE,St.Patrick,Grenada|MORNE FENDUE]]
*[[MT. CRAVEN,St.Patrick,Grenada|MT. CRAVEN]]
*[[MT. RICH,St.Patrick,Grenada|MT. RICH]]
*[[MT. ROSE,St.Patrick,Grenada|MT. ROSE]]
*[[PEGGYS WHIM, HERMITAGE,St.Patrick,Grenada|PEGGYS WHIM, HERMITAGE]]
*[[PLAINS,St.Patrick,Grenada|PLAINS]]
*[[POINTZFIELD,St.Patrick,Grenada|POINTZFIELD]]
*[[PROSPECT,St.Patrick,Grenada|PROSPECT]]
*[[RED HEAD STREET, LA FORTUNE,St.Patrick,Grenada|RED HEAD STREET, LA FORTUNE]]
*[[RED HEAD STREET, SAUTEURS,St.Patrick,Grenada|RED HEAD STREET, SAUTEURS]]
*[[RED MUD,St.Patrick,Grenada|RED MUD]]
*[[RIVER SALLEE,St.Patrick,Grenada|RIVER SALLEE]]
*[[ROSE HILL,St.Patrick,Grenada|ROSE HILL]]
*[[SALISBURY RD, SAUTEURS,St.Patrick,Grenada|SALISBURY RD, SAUTEURS]]
*[[SALISBURY STREET, SAUTEURS,St.Patrick,Grenada|SALISBURY STREET, SAUTEURS]]
*[[SAUTEURS,St.Patrick,Grenada|SAUTEURS]]
*[[THE VILLA, SAUTEURS,St.Patrick,Grenada|THE VILLA, SAUTEURS]]
{{div col end}}
== Uncategorized==
*[[ADAM'S ALLEY,,Grenada|ADAM'S ALLEY]]
*[[AFRICA,,Grenada|AFRICA]]
*[[APSLEY HILL,,Grenada|APSLEY HILL]]
*[[BAYROAD,,Grenada|BAYROAD]]
*[[BLAIZE,,Grenada|BLAIZE]]
*[[BLUGGO,,Grenada|BLUGGO]]
*[[BYWAY,,Grenada|BYWAY]]
*[[CASTIGNE,,Grenada|CASTIGNE]]
*[[CEDARS,,Grenada|CEDARS]]
*[[CELESTE,,Grenada|CELESTE]]
*[[CENTRAL DEPRADINE, GOUYAVE,,Grenada|CENTRAL DEPRADINE, GOUYAVE]]
*[[CHADDEAU,,Grenada|CHADDEAU]]
*[[CHANCERY STREET, MUNRO,,Grenada|CHANCERY STREET, MUNRO]]
*[[CHAPEL'S LANE,,Grenada|CHAPEL'S LANE]]
*[[CHURCH HILL ROAD,,Grenada|CHURCH HILL ROAD]]
*[[CONTENT,,Grenada|CONTENT]]
*[[COOPER'S HILL,,Grenada|COOPER'S HILL]]
*[[CORNWALL STREET, SAUTEURS,,Grenada|CORNWALL STREET, SAUTEURS]]
*[[DE SILLES,,Grenada|DE SILLES]]
*[[DEHAR, GLEBE LAND,,Grenada|DEHAR, GLEBE LAND]]
*[[DOCTOR BELLE,,Grenada|DOCTOR BELLE]]
*[[DOTHAN ESTATE,,Grenada|DOTHAN ESTATE]]
*[[DURRANT ROAD,,Grenada|DURRANT ROAD]]
*[[FENCE,,Grenada|FENCE]]
*[[FERGUSONS LANE, GOUYAVE,,Grenada|FERGUSONS LANE, GOUYAVE]]
*[[FIELD STREET,,Grenada|FIELD STREET]]
*[[FOUNTAIN,,Grenada|FOUNTAIN]]
*[[GLEBE LAND, SAUTEURS,,Grenada|GLEBE LAND, SAUTEURS]]
*[[GRANLETTE,,Grenada|GRANLETTE]]
*[[GRAVEL STREET, VENDOME,,Grenada|GRAVEL STREET, VENDOME]]
*[[GROSS POINT VILLA,,Grenada|GROSS POINT VILLA]]
*[[GUPO,,Grenada|GUPO]]
*[[HENRY STREET,,Grenada|HENRY STREET]]
*[[HERMON,,Grenada|HERMON]]
*[[JONES ROAD,,Grenada|JONES ROAD]]
*[[LOWER CONFERENCE,,Grenada|LOWER CONFERENCE]]
*[[LOWER DEPRADINE, GOUYAVE,,Grenada|LOWER DEPRADINE, GOUYAVE]]
*[[LOWER LAURA,,Grenada|LOWER LAURA]]
*[[LYDER,,Grenada|LYDER]]
*[[MADEYS,,Grenada|MADEYS]]
*[[MAHOUT, SAUTEURS,,Grenada|MAHOUT, SAUTEURS]]
*[[MAIN STREET, SAUTEURS,,Grenada|MAIN STREET, SAUTEURS]]
*[[MALIGNON,,Grenada|MALIGNON]]
*[[MALONEY STREET,,Grenada|MALONEY STREET]]
*[[MARINE VILLA,,Grenada|MARINE VILLA]]
*[[MAUCHETTE,,Grenada|MAUCHETTE]]
*[[MAULTY,,Grenada|MAULTY]]
*[[MC LAINE ALLEY, SAUTEURS,,Grenada|MC LAINE ALLEY, SAUTEURS]]
*[[MEADOW,,Grenada|MEADOW]]
*[[MELROSE,,Grenada|MELROSE]]
*[[MT. ALEXANDER,,Grenada|MT. ALEXANDER]]
*[[MT. ANON,,Grenada|MT. ANON]]
*[[MT. CUMMA,,Grenada|MT. CUMMA]]
*[[MT. FELIX,,Grenada|MT. FELIX]]
*[[MT. PLASIR,,Grenada|MT. PLASIR]]
*[[MT. REUIL,,Grenada|MT. REUIL]]
*[[MT. RODNEY,,Grenada|MT. RODNEY]]
*[[MT. SEALEY,,Grenada|MT. SEALEY]]
*[[MT. WILLIAMS,,Grenada|MT. WILLIAMS]]
*[[MUNRO STREET,,Grenada|MUNRO STREET]]
*[[MUNROE STREET, VICTORIA,,Grenada|MUNROE STREET, VICTORIA]]
*[[NETTLE POINT,,Grenada|NETTLE POINT]]
*[[NEW GARDENS,,Grenada|NEW GARDENS]]
*[[OTTLEY'S LANE,,Grenada|OTTLEY'S LANE]]
*[[PARK ESTATE,,Grenada|PARK ESTATE]]
*[[PENNY RETREAT,,Grenada|PENNY RETREAT]]
*[[SAMUELS AVENUE,,Grenada|SAMUELS AVENUE]]
*[[SAUTEURS, MAHOUT,,Grenada|SAUTEURS, MAHOUT]]
*[[SCHOOL LANE,,Grenada|SCHOOL LANE]]
*[[ST. BENOIT'S STREET,,Grenada|ST. BENOIT'S STREET]]
*[[ST. CYR,,Grenada|ST. CYR]]
*[[ST. DAVID STREET,,Grenada|ST. DAVID STREET]]
*[[ST. DOMINIC'S ST.,,Grenada|ST. DOMINIC'S ST.]]
*[[TABOR,,Grenada|TABOR]]
*[[TAYBAKAY,,Grenada|TAYBAKAY]]
*[[TAYLOR,,Grenada|TAYLOR]]
*[[TETMUND,,Grenada|TETMUND]]
*[[THE SUMMIT,,Grenada|THE SUMMIT]]
*[[THE VILLA,,Grenada|THE VILLA]]
*[[THE VILLA, THE ROCK,,Grenada|THE VILLA, THE ROCK]]
*[[TOUS CONGO,,Grenada|TOUS CONGO]]
*[[VINEYARD,,Grenada|VINEYARD]]
*[[WALTHAM,,Grenada|WALTHAM]]
*[[WELLS ROAD,,Grenada|WELLS ROAD]]
*[[WOODFORD,,Grenada|WOODFORD]]
fe0ed0dfb5ec06681bcb995826c7b5786c161d8c
Template:Div col
10
18
28
27
2022-07-19T23:24:45Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
<includeonly><templatestyles src="Div col/styles.css"/><!--
--><div class="div-col {{#ifeq:{{{small|}}}|yes|div-col-small}} {{#ifeq:{{{rules|}}}|yes|div-col-rules}} {{{class|}}}" <!--
-->{{#if:{{{colwidth|}}}{{{gap|}}}{{{style|}}}|<!--
-->style="{{#if:{{{colwidth|}}}|column-width: {{{colwidth}}};}}{{#if:{{{gap|}}}|column-gap: {{{gap}}};}}{{#if:{{{style|}}}|{{{style}}}}}"<!--
-->}}><!--
-->{{#if:{{{content|}}}|{{{content}}}</div>}}<!-- Inventory how many pages use small=yes
-->{{#ifeq:{{{small|}}}|yes|[[Category:Pages using div col with small parameter]]}}<!--
--></includeonly>{{#invoke:Check for unknown parameters|check|unknown={{main other|[[Category:Pages using div col with unknown parameters|_VALUE_{{PAGENAME}}]]}}|preview=Page using [[Template:Div col]] with unknown parameter "_VALUE_"; use colwidth= to specify column size |ignoreblank=y | class | colwidth | content | gap | rules | small | style }}<noinclude>
{{Documentation}}
</noinclude>
6e84133dd867d6c701e7b161878cf66665bb7eb7
Template:CSS3 multiple column layout
10
19
30
29
2022-07-19T23:24:45Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
{| class="wikitable" style="float:right;clear:right;font-size:90%;margin:0 0 1em 1em;text-align:center;line-height:1.25em;"
|+ style="line-height:1.25em;padding-bottom:0.25em;"| CSS3 multiple-column layout browser support
|-
! Property !! [[Internet Explorer|Internet<br />Explorer]] !! [[Firefox]] !! [[Safari (web browser)|Safari]] !! [[Google Chrome|Chrome]] !! [[Opera (web browser)|Opera]]
|-
| column-width<br/>column-count
| {{yes|≥ 10<br />{{smaller|(2012)}}}} || {{yes|≥ 1.5<br />{{smaller|(2005)}}}} || {{yes|≥ 3<br />{{smaller|(2007)}}}} || {{yes|≥ 1<br />{{smaller|(2008)}}}} || {{yes|≥ 11.1<br />{{smaller|(2011)}}}}
|-
| columns
| {{yes|≥ 10<br />{{smaller|(2012)}}}} || {{yes|≥ 9<br />{{smaller|(2011)}}}} || {{yes|≥ 3<br />{{smaller|(2007)}}}} || {{yes|≥ 1<br />{{smaller|(2008)}}}} || {{yes|≥ 11.1<br />{{smaller|(2011)}}}}
|-
| break-before<br/>break-after<br/>break-inside
| {{yes|≥ 10<br />{{smaller|(2012)}}}} || {{maybe|≥ 65<br />{{smaller|(2019)}}}}<!-- no break-after --> || {{yes|≥ 10<br />{{smaller|(2016)}}}} || {{maybe|≥ 65<br />{{smaller|(2016)}}}}<!-- no break-after --> || {{maybe|≥ 15<br />{{smaller|(2013)}}}}<!-- no break-after -->
|-
|colspan="6" style="text-align:right"|{{navbar|CSS3 multiple column layout|mini=y}}
|}<noinclude>
{{Documentation}}
</noinclude>
c44910bab9b28d152d3b51049cbfed9bf55dcca5
173
30
2022-07-21T06:46:06Z
en>SunDawn
0
Reverted 1 edit by [[Special:Contributions/Joaquin Bismonte|Joaquin Bismonte]] ([[User talk:Joaquin Bismonte|talk]]) to last revision by IagoQnsi
wikitext
text/x-wiki
{| class="wikitable" style="float:right;clear:right;font-size:90%;margin:0 0 1em 1em;text-align:center;line-height:1.25em;"
|+ style="line-height:1.25em;padding-bottom:0.25em;"| CSS3 multiple-column layout browser support
|-
! Property !! [[Internet Explorer|Internet<br />Explorer]] !! [[Firefox]] !! [[Safari (web browser)|Safari]] !! [[Google Chrome|Chrome]] !! [[Opera (web browser)|Opera]]
|-
| column-width<br/>column-count
| {{yes|≥ 10<br />{{smaller|(2012)}}}} || {{yes|≥ 1.5<br />{{smaller|(2005)}}}} || {{yes|≥ 3<br />{{smaller|(2007)}}}} || {{yes|≥ 1<br />{{smaller|(2008)}}}} || {{yes|≥ 11.1<br />{{smaller|(2011)}}}}
|-
| columns
| {{yes|≥ 10<br />{{smaller|(2012)}}}} || {{yes|≥ 9<br />{{smaller|(2011)}}}} || {{yes|≥ 3<br />{{smaller|(2007)}}}} || {{yes|≥ 1<br />{{smaller|(2008)}}}} || {{yes|≥ 11.1<br />{{smaller|(2011)}}}}
|-
| break-before<br/>break-after<br/>break-inside
| {{yes|≥ 10<br />{{smaller|(2012)}}}} || {{maybe|≥ 65<br />{{smaller|(2019)}}}}<!-- no break-after --> || {{yes|≥ 10<br />{{smaller|(2016)}}}} || {{maybe|≥ 65<br />{{smaller|(2016)}}}}<!-- no break-after --> || {{maybe|≥ 15<br />{{smaller|(2013)}}}}<!-- no break-after -->
|-
|colspan="6" style="text-align:right"|{{navbar|CSS3 multiple column layout|mini=y}}
|}<noinclude>
{{Documentation}}
</noinclude>
c44910bab9b28d152d3b51049cbfed9bf55dcca5
Template:Category link with count
10
20
32
31
2022-07-19T23:24:45Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
[[:Category:{{#invoke:string|replace|1={{{1}}}|2=^:?[Cc]ategory:|3=|plain=false}}|<!--
-->{{#if:{{{name|}}}|{{{name}}}|Category:{{#invoke:string|replace|1={{{1}}}|2=^:?[Cc]ategory:|3=|plain=false}}}}<!--
-->]] ({{PAGESINCATEGORY:{{#invoke:string|replace|1={{{1}}}|2=^:?[Cc]ategory:|3=|plain=false}}|{{{2|all}}}}})<noinclude>
{{Documentation}}
</noinclude>
f93f1540b8c157703bd6d24ae35c35bef745981d
Template:Code
10
21
34
33
2022-07-19T23:24:46Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
{{#tag:syntaxhighlight|{{{code|{{{1}}}}}}|lang={{{lang|{{{2|text}}}}}}|class={{{class|}}}|id={{{id|}}}|style={{{style|}}}|inline=1}}<noinclude>
{{documentation}}
<!-- Add categories to the /doc subpage, interwikis to Wikidata, not here -->
</noinclude>
5d9b1a0980efe1b02eb91bc717438a5ae4a5ee04
Template:Column-generating template families
10
22
36
35
2022-07-19T23:24:46Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
=== Column-generating template families ===
'''The templates listed here are not interchangeable'''. For example, using {{tl|col-float}} with {{tl|col-end}} instead of {{tl|col-float-end}} would leave a [[HTML]] [[Span and div|"div" (division)]] open, potentially harming any subsequent formatting.
<section begin="table" />
{| class="wikitable" style="line-height:1.4em"
|+ Column templates
|- style="vertical-align:middle;"
! scope="col" | Type
! scope="col" | Family
! scope="col" | {{longitem|Handles wiki <br/> table code?{{sup|{{dagger}}}}}}
! scope="col" | Responsive/<br>Mobile suited
! scope="col" | Start template
! scope="col" | Column divider
! scope="col" | End template
|-
| rowspan="2" | Float
| "Col-float"
| {{yes}}
| {{yes}}
| {{tl|Col-float}}
| {{tl|Col-float-break}}
| {{tl|Col-float-end}}
|-
| "Columns-start"
| {{yes}}
| {{yes}}
| {{tl|Columns-start}}
| {{tl|Column}}
| {{tl|Columns-end}}
|-
| rowspan="2" | Columns
| "Div col"
| {{yes}}
| {{yes}}
| {{tl|Div col}}
| –
| {{tl|Div col end}}
|-
| "Columns-list"
| {{no}}
| {{yes}}
| {{tl|Columns-list}} (wraps div col)
| –
| –
|-
| Flexbox
| "Flex columns"
| {{no}}
| {{yes}}
| {{tl|Flex columns}}
| –
| –
|-
| Table
| "Col"
| {{yes}}
| {{no}}
| {{tl|Col-begin}}, <br/>{{tl|Col-begin-fixed}} or<br/>{{tl|Col-begin-small}}
| {{tl|Col-break}} or<br/>{{tl|Col-2}} .. {{tl|Col-5}}
| {{tl|Col-end}}
|}
{{sup|{{dagger}}}} Can template handle the basic [[Help:Wiki markup|wiki markup]] <code><nowiki>{| | || |- |}</nowiki></code> [[Help:Tables|used to create tables]]? If not, special templates that produce these elements (such as {{tl|(!}}, {{tl|!}}, {{tl|!!}}, {{tl|!-}}, {{tl|!)}})—or [[HTML element|HTML tags]] ({{tag|table}}, {{tag|tr}}, etc.)—need to be used instead.<section end="table" /><noinclude>
{{Documentation
| content =
Used by column template documentation pages to provide links to other column-related templates.
[[Category:Multi-column templates| ]]
[[Category:Related-topic templates]]
}}
</noinclude>
83210b3edf5c03586efeeb2e82e5ebaf7b5868d8
Template:Dagger
10
23
38
37
2022-07-19T23:24:46Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
[[File:Dagger-14-plain.png|alt={{if empty|{{{alt|}}}|dagger}}|link=]]<noinclude>{{Documentation}}
</noinclude>
5e0a5d9443b211af401b97ba3be2f6b64c100fd4
Template:Div col/doc
10
24
40
39
2022-07-19T23:24:46Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
{{Documentation subpage}}
<!-----------------------------------------------------------------------------
PLEASE ADD CATEGORIES WHERE INDICATED AT THE BOTTOM OF THIS PAGE
------------------------------------------------------------------------------>
{{#ifeq:{{FULLPAGENAME}}|Template:Div col|{{High-use| 269676 }}|{{#ifeq:{{FULLPAGENAME}}|Template:Div col end|{{High-use| 209292 }}}}}}
{{Ombox |type=notice |text=Columns are not supported by some older browsers, most notably Internet Explorer 9 and earlier and Opera 11.0 and earlier. See {{section link|Template:Reflist#Browser support for columns}} for more information.}}
{{CSS3 multiple column layout}}
{{Lua|Module:Check for unknown parameters}}
{{Uses TemplateStyles|Template:Div col/styles.css}}
The '''div col''' (short for division columns) formats a list into columns that wrap at multiple screen resolutions responsively. It automatically breaks the available screen space into equal parts, meaning, for instance, that it is not necessary to guess how many columns to use and then figure out the dividing point(s), e.g., the halfway point to divide the list into two columns, or the one-third and two-thirds points to divide the list into three columns.
==Usage==
=== Basic usage ===
<pre>
{{div col}} <!-- default width is 30em -->
* a
* b
* c
* d
* e
* f
* g
* h
{{div col end}}
</pre>
Produces:
{{Div col}}
* a
* b
* c
* d
* e
* f
* g
* h
{{Div col end}}
===Parameters===
There are six parameters for this template:
; {{para|colwidth}}
: Specifies the minimum width of the columns so that the number of columns is automatically based on screen width (that is, more columns will be shown on wider displays). If no value is supplied, the template uses a default of 30em. The width can be specified in any [[CSS#Length units|CSS unit of measure]], for instance, the [[Em (typography)|em]] (about the width of the capital "M" of the displayed typeface), e.g., <code>colwidth=20em</code>.
; {{para|rules|yes}}
: Adds vertical lines ("rules") between the columns if set to <code>yes</code>.
; {{para|gap}}
: Specifies the space between the content of adjacent columns, in any valid CSS width unit, e.g., <code>gap=2em</code>. The default spacing (set by browser) is 1em.
; {{para|class}}
: An HTML class, or multiple space-delimited classes, to apply to the columns. For example, <code>class=plainlist nowrap</code>.
; {{para|style}}
: [[Cascading Style Sheets|CSS styling]] to apply to the columns.
; {{para|small|yes}}
: Sets font size to 90%.
; {{para|content}}
: Content to apply to the columns. This parameter is effectively equivalent to {{tl|columns-list}}, which is a pass-through for this template.
=== Examples ===
====Colwidth====
<pre>
{{div col|colwidth=10em}} <!-- column width of 10em -->
* a
* b
* c
* d
* e
* f
* g
* h
{{div col end}}
</pre>
Produces:
{{Div col|colwidth=10em}}
* a
* b
* c
* d
* e
* f
* g
* h
{{Div col end}}
====Rules====
<pre>
{{Div col|colwidth=10em|rules=yes}} <!-- column width of 10em with rules -->
* a
* b
* c
* d
* e
* f
* g
* h
{{Div col end}}
</pre>
Produces:
{{Div col|colwidth=10em|rules=yes}}
* a
* b
* c
* d
* e
* f
* g
* h
{{Div col end}}
====Gap====
<pre>
{{Div col|colwidth=10em|rules=yes|gap=2em}} <!-- column width of 10em with rules and a gap of 2em -->
* a
* b
* c
* d
* e
* f
* g
* h
{{Div col end}}
</pre>
Produces:
{{Div col|colwidth=10em|rules=yes|gap=2em}}
* a
* b
* c
* d
* e
* f
* g
* h
{{Div col end}}
====Small====
<pre>
{{Div col|small=yes}} <!-- Small = yes -->
* a
* b
* c
* d
* e
* f
* g
* h
{{Div col end}}
</pre>
Produces:
{{Div col|small=yes}}
* a
* b
* c
* d
* e
* f
* g
* h
{{Div col end}}
====Content====
<pre>
{{Div col|colwidth=10em|content= <!-- content parameter doesn't need {{div col end}} -->
* a
* b
* c
* d
* e
* f
* g
* h
}}
</pre>
Produces:
{{Div col|colwidth=10em|content=
* a
* b
* c
* d
* e
* f
* g
* h
}}
====Multiple parameters====
<pre>
{{Div col|colwidth=10em|rules=yes|gap=2em|small=yes}}
* a
* b
* c
* d
* e
* f
* g
* h
{{Div col end}}
</pre>
Produces:
{{Div col|colwidth=10em|rules=yes|gap=2em|small=yes}}
* a
* b
* c
* d
* e
* f
* g
* h
{{Div col end}}
==== Text characters without list markup ====
<pre>
{{div col|colwidth=10em}} <!--Text characters without list markup -->
a
b
c
d
e
f
g
h
{{div col end}}
</pre>
Produces
{{Div col|colwidth=10em}}
a
b
c
d
e
f
g
h
{{Div col end}}
==== Lorem ipsum ====
<pre>
{{div col}} <!--Lorem ipsum -->
{{lorem ipsum}}
{{div col end}}
</pre>
Produces
{{Div col}}
{{lorem ipsum}}
{{Div col end}}
== Limitation ==
=== Sub-lists ===
The underlying CSS system is unable to break sub-lists into columns. Note the uneven formatting below:
<pre>
{{Div col|colwidth=10em|rules=yes|gap=2em|style=column-count:3|content=
* a
* b
* c
** c.d
** c.e
** c.f
* g
* h
}}
</pre>
Produces:
{{Div col|colwidth=10em|rules=yes|gap=2em|style=column-count:3|content=
* a
* b
* c
** c.d
** c.e
** c.f
* g
* h
}}
Turning off the {{code|break-inside: avoid-column;}} rule appears to help.<!-- A full page refersh is needed; just F12-ing doesn't work. -->
==Tracking categories==
* {{category link with count|Pages using div col with unknown parameters}} (for erroneous use of parameter names not documented here)
* {{category link with count|Pages using div col with small parameter}}
==TemplateData==
{{TemplateData header}}
{{#switch: {{BASEPAGENAME}}
|Div col=<templatedata>
{
"description": "Breaks a list into columns. It automatically breaks each column to an equal space, so you do not manually have to find the half way point on two columns. The list is provided by |content= or closed with {{div col end}}.",
"params": {
"colwidth": {
"label": "Column width",
"description": "Specifies the width of columns, and determines dynamically the number of columns based on screen width; more columns will be shown on wider displays.",
"type": "string",
"example": "30em"
},
"rules": {
"label": "Rules",
"description": "Produces vertical rules between the columns if set to yes.",
"type": "string",
"example": "yes"
},
"gap": {
"label": "Gap size",
"description": "Specifies the space between the content of adjacent columns.",
"type": "string",
"example": "2em"
},
"class": {
"label": "HTML class",
"description": "Specifies any class or multiple space-delimited classes.",
"type": "string",
"example": "plainlist nowrap"
},
"style": {
"label": "CSS style",
"description": "Specifies any custom styling.",
"type": "string"
},
"content": {
"label": "Content",
"description": "Specifies the content to divide into columns",
"type": "content"
},
"small": {
"label": "Small font",
"description": "Use a smaller font size (90%)",
"example": "yes",
"type": "string"
}
}
}
</templatedata>
|Div col end=<templatedata>
{
"description": "Ends a multi-column list started by {{div col}}. It takes no parameters.",
"params": {
}
}
</templatedata>
}}
==Redirects==
{{#ifeq:{{ROOTPAGENAME}}|Div col|
* {{Tlx|Col div}}
* {{Tlx|Colbegin}} (but '''not''' {{Tlx|Col begin}} or {{Tlx|Col-begin}})
* {{Tlx|Cols}}
* {{Tlx|Div col start}}
* {{Tlx|Div col begin}}
* {{Tlx|Div-col}}
* {{Tlx|Palmares start}}
}}
{{#ifeq:{{ROOTPAGENAME}}|Div col end|
*{{Tlx|Col div end}}
*{{Tlx|Colend}} (but '''not''' {{Tlx|Col end}})
*{{Tlx|Div end}}
*{{Tlx|Divcol-end}}
*{{Tlx|Divcolend}}
*{{Tlx|Divend}}
*{{Tlx|End div col}}
*{{Tlx|EndDivCol}}
}}
==See also==
{{Column-generating template families}}
<includeonly>{{Sandbox other|
| <!-- CATEGORIES BELOW THIS LINE, PLEASE: -->
[[Category:Multi-column templates]]
[[Category:Templates that add a tracking category]]
<!--?:-->{{#switch:{{PAGENAME}} |Div col= |Div col end=}}
}}</includeonly>
669f943fb4cb12d7993de34efde3e45cd9af8993
Template:Div col/styles.css
10
25
42
41
2022-07-21T19:50:45Z
Wikiricky
1
1 revision imported
sanitized-css
text/css
/* {{pp|small=yes}} */
.div-col {
margin-top: 0.3em;
column-width: 30em;
}
.div-col-small {
font-size: 90%;
}
.div-col-rules {
column-rule: 1px solid #aaa;
}
/* Reset top margin for lists in div col */
.div-col dl,
.div-col ol,
.div-col ul {
margin-top: 0;
}
/* Avoid elements breaking between columns
See also Template:No col break */
.div-col li,
.div-col dd {
page-break-inside: avoid; /* Removed from CSS in favor of break-inside c. 2020 */
break-inside: avoid-column;
}
c6c2dc0cb2bab7a5f7b4eb938eebc5c67df087bc
Template:Div col end
10
26
44
43
2022-07-21T19:50:45Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
<includeonly></div></includeonly><noinclude>
{{Documentation|Template:Div col/doc}}
</noinclude>
78088d41c21d779e3722f220fcc9773dfbbc1e4f
Template:Documentation
10
27
46
45
2022-07-21T19:50:45Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
{{#invoke:documentation|main|_content={{ {{#invoke:documentation|contentTitle}}}}}}<noinclude>
<!-- Add categories to the /doc subpage -->
</noinclude>
9e62b964e96c4e3d478edecbfcb3c0338ae8a276
Template:Documentation subpage
10
28
48
47
2022-07-21T19:50:45Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
<includeonly><!--
-->{{#ifeq:{{lc:{{SUBPAGENAME}}}} |{{{override|doc}}}
| <!--(this template has been transcluded on a /doc or /{{{override}}} page)-->
</includeonly><!--
-->{{#ifeq:{{{doc-notice|show}}} |show
| {{Mbox
| type = notice
| style = margin-bottom:1.0em;
| image = [[File:Edit-copy green.svg|40px|alt=|link=]]
| text =
{{strong|This is a [[Wikipedia:Template documentation|documentation]] [[Wikipedia:Subpages|subpage]]}} for {{terminate sentence|{{{1|[[:{{SUBJECTSPACE}}:{{BASEPAGENAME}}]]}}}}}<br />It contains usage information, [[Wikipedia:Categorization|categories]] and other content that is not part of the original {{#if:{{{text2|}}} |{{{text2}}} |{{#if:{{{text1|}}} |{{{text1}}} |{{#ifeq:{{SUBJECTSPACE}} |{{ns:User}} |{{lc:{{SUBJECTSPACE}}}} template page |{{#if:{{SUBJECTSPACE}} |{{lc:{{SUBJECTSPACE}}}} page|article}}}}}}}}.
}}
}}<!--
-->{{DEFAULTSORT:{{{defaultsort|{{PAGENAME}}}}}}}<!--
-->{{#if:{{{inhibit|}}} |<!--(don't categorize)-->
| <includeonly><!--
-->{{#ifexist:{{NAMESPACE}}:{{BASEPAGENAME}}
| [[Category:{{#switch:{{SUBJECTSPACE}} |Template=Template |Module=Module |User=User |#default=Wikipedia}} documentation pages]]
| [[Category:Documentation subpages without corresponding pages]]
}}<!--
--></includeonly>
}}<!--
(completing initial #ifeq: at start of template:)
--><includeonly>
| <!--(this template has not been transcluded on a /doc or /{{{override}}} page)-->
}}<!--
--></includeonly><noinclude>{{Documentation}}</noinclude>
932915be87123dcf74687ffca846a3130a6a52af
Template:High-use
10
29
50
49
2022-07-21T19:50:45Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
{{#invoke:High-use|main|1={{{1|}}}|2={{{2|}}}|all-pages={{{all-pages|}}}|info={{{info|}}}|demo={{{demo|}}}|form={{{form|}}}|expiry={{{expiry|}}}|system={{{system|}}}}}<noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage; interwiki links go to Wikidata, thank you! -->
</noinclude>
dc5ea36aa88cf409e3280bf65dbfc2566faffe29
Template:If empty
10
30
52
51
2022-07-21T19:50:45Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
{{<includeonly>safesubst:</includeonly>#invoke:If empty|main}}<noinclude>{{Documentation}}</noinclude>
745940b7bdde8a1585c887ee4ee5ce81d98461a4
Template:Longitem
10
31
54
53
2022-07-21T19:50:45Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
{{#if:{{{1|}}}|<div style="}} display:inline-block; line-height:1.2em; padding:0.1em 0;{{#if:{{{1|}}}|{{{style|}}}">{{{1}}}</div><includeonly>{{#if:{{{2|}}}|[[Category:Pages using Template:Longitem with unnamed style parameter]]}}</includeonly>}}<noinclude>
{{documentation}}
</noinclude>
6a40580511715660899f98b06460a45f5a42977b
Template:Lorem ipsum
10
32
56
55
2022-07-21T19:50:45Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
{{#ifexpr:{{{1|1}}}>0|{{Lorem ipsum/p-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P1|link={{{link|{{{4|no}}}}}}}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>1|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P2}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>2|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P3}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>3|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P4}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>4|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P5}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>5|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P6}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>6|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P7}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>7|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P8}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>8|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P9}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>9|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P10}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>10|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P11}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>11|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P12}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>12|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P13}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>13|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P14}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>14|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P15}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>15|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P16}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>16|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P17}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>17|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P18}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>18|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P19}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>19|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P20}}{{{3|}}}}}{{Lorem ipsum/p-end-cond|{{{2|}}}|{{{join|}}}}}<includeonly>{{#ifeq:{{{cat|}}}|no||{{Template:Main other|[[Category:Wikipedia articles containing placeholders]]}}}}</includeonly><noinclude>
{{Documentation}}
<!-- PLEASE ADD CATEGORIES TO THE /doc SUBPAGE, AND INTERWIKIS TO WIKIDATA, THANKS -->
</noinclude>
91dbbf4d98efd9dcc6c7e87bedef6086ddcd6e1c
Template:Lorem ipsum/P1
10
33
58
57
2022-07-21T19:50:45Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
{{#ifeq:{{{link|no}}}|yes|[[Lorem ipsum]]|Lorem ipsum}} dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.<noinclude>{{pp-template}}</noinclude>
df39f3c9a1e5a7c04c8844ba5871733dcf423d99
Template:Lorem ipsum/p-cond
10
34
60
59
2022-07-21T19:50:46Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
{{#ifeq: {{{2|{{{join|no}}}}}} | yes
|
| {{#switch: {{#invoke:string|sub|x{{{1|}}}|2|2}}
| : | # | * =
| #default = <p><!--
-->}}
}}</p><noinclude>{{Documentation |content=
Conditional paragraph begin. Generates a begin p-tag if needed, depending on ''prefix'' and ''join'':
* nothing, in the case of joins;
* nothing, where prefix metacharacters are present like (<code>*</code>, <code>#</code>, or <code>:</code>) which must sit in column 1;
* a begin p-tag before the first lorem paragraph, in other cases.
== Usage ==
{{tlc|Lorem ipsum/p-cond|''prefix''|''join''}}
}}</noinclude>
e2485ca32977a604ce4bbb108cdd1ab27daf6659
Template:Lorem ipsum/p-end-cond
10
35
62
61
2022-07-21T19:50:46Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
{{#ifeq: {{{2|{{{join|no}}}}}} | yes
|
| {{#switch: {{#invoke:string|sub|x{{{1|}}}|2|2}}
| : | # | * =
| #default = </p><!--
-->}}
}}<noinclude>{{Documentation |content=
Conditional paragraph end. Generates an p-tag if needed, depending on ''prefix'' and ''join'':
* nothing, in the case of joins;
* nothing, where prefix metacharacters are present like (<code>*</code>, <code>#</code>, or <code>:</code>) which must sit in column 1, don't acquire begin-p tags, and therefore don't need an end p-tag;
* an end p-tag after the lorem paragraph emitted last, in other cases.
== Usage ==
{{tlc|Lorem ipsum/p-end-cond|''prefix''|''join''}}
}}</noinclude>
9baedbe65b1f076b223137136f33de217b8f939f
Template:Lua
10
36
64
63
2022-07-21T19:50:46Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
<includeonly>{{#invoke:Lua banner|main}}</includeonly><noinclude>
{{Lua|Module:Lua banner}}
{{documentation}}
<!-- Categories go on the /doc subpage and interwikis go on Wikidata. -->
</noinclude>
dba3962144dacd289dbc34f50fbe0a7bf6d7f2f7
Template:Main other
10
37
66
65
2022-07-21T19:50:46Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
{{#switch:
<!--If no or empty "demospace" parameter then detect namespace-->
{{#if:{{{demospace|}}}
| {{lc: {{{demospace}}} }} <!--Use lower case "demospace"-->
| {{#ifeq:{{NAMESPACE}}|{{ns:0}}
| main
| other
}}
}}
| main = {{{1|}}}
| other
| #default = {{{2|}}}
}}<noinclude>
{{documentation}}
<!-- Add categories to the /doc subpage; interwikis go to Wikidata, thank you! -->
</noinclude>
86ad907ffeea3cc545159e00cd1f2d6433946450
Template:Maybe
10
38
68
67
2022-07-21T19:50:46Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
<noinclude>{| class="wikitable"
|-
|</noinclude>style="background: #FF8; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}" class="table-maybe"|{{{1|Maybe}}}<noinclude>
|}
{{documentation|Template:Table cell templates/doc}}
</noinclude>
513f72a3cd1dbb2421df25f04c55f3064e38ab52
Template:Navbar
10
39
70
69
2022-07-21T19:50:46Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
<includeonly>{{#invoke:Navbar|navbar}}</includeonly><noinclude>
{{documentation}}
</noinclude>
868e3566b7e8a9a5a7f3dac75cac429c47de10d3
Template:No
10
40
72
71
2022-07-21T19:50:47Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
<noinclude>{| class="wikitable"
|-
|</noinclude>style="background:#FFC7C7;vertical-align:middle;text-align:{{{align|center}}};{{{style|}}}" class="table-no"|{{{1|No}}}<noinclude>
|}
{{documentation}}
</noinclude>
653ef43ca2ef84cc0d6d8042d87932e4accdbcab
Template:Ombox
10
41
74
73
2022-07-21T19:50:47Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
{{#invoke:Message box|ombox}}<noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
0e54065432d540737b9e56c4e3a8e7f74d4534ea
Template:Para
10
42
76
75
2022-07-21T19:50:47Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
<code class="nowrap" style="{{SAFESUBST:<noinclude />#if:{{{plain|}}}|border: none; background-color: inherit;}} {{SAFESUBST:<noinclude />#if:{{{plain|}}}{{{mxt|}}}{{{green|}}}{{{!mxt|}}}{{{red|}}}|color: {{SAFESUBST:<noinclude />#if:{{{mxt|}}}{{{green|}}}|#006400|{{SAFESUBST:<noinclude />#if:{{{!mxt|}}}{{{red|}}}|#8B0000|inherit}}}};}} {{SAFESUBST:<noinclude />#if:{{{style|}}}|{{{style}}}}}">|{{SAFESUBST:<noinclude />#if:{{{1|}}}|{{{1}}}=}}{{{2|}}}</code><noinclude>
{{Documentation}}
<!--Categories and interwikis go near the bottom of the /doc subpage.-->
</noinclude>
96ef5dce1fb3a5c1b6648eac125a2496944a852e
Template:Sandbox other
10
43
78
77
2022-07-21T19:50:47Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
{{#if:{{#ifeq:{{#invoke:String|sublength|s={{SUBPAGENAME}}|i=0|len=7}}|sandbox|1}}{{#ifeq:{{SUBPAGENAME}}|doc|1}}{{#invoke:String|match|{{PAGENAME}}|/sandbox/styles.css$|plain=false|nomatch=}}|{{{1|}}}|{{{2|}}}}}<!--
--><noinclude>{{documentation}}</noinclude>
91e4ae891d6b791615152c1fbc971414961ba872
Template:Section link
10
44
80
79
2022-07-21T19:50:47Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
{{#invoke:Section link|main}}<noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage and interwikis go on Wikidata. -->
</noinclude>
8d047e5845f8a9b74a4655b5dd79ca7595a8f88b
Template:Small
10
45
82
81
2022-07-21T19:50:47Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
<span style="font-size:85%;">{{{1}}}</span><includeonly>{{SAFESUBST:#if:{{{1|}}}||[[Category:Pages using small with an empty input parameter]]}}</includeonly><noinclude>
{{Documentation}}<!--Categories and interwikis go in the /doc sub-page.-->
</noinclude>
76d3535c2917cc3bfb1b032506073faa15e1a480
Template:Smaller
10
46
84
83
2022-07-21T19:50:47Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Template:Small]]
{{r from merge}}
2209ecdc4a987eb3d73f648941a3daaed04cd5d5
Template:Sup
10
47
86
85
2022-07-21T19:50:48Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
<includeonly><sup>{{{1}}}</sup></includeonly><noinclude>
{{documentation}}
<!-- Add cats and interwikis to the /doc subpage, not here! -->
</noinclude>
d7d0f30bf52c68f2f488db57534de2552c40c938
Template:Tag
10
48
88
87
2022-07-21T19:50:48Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
<code class="{{#ifeq:{{{wrap|}}}|yes|wrap|nowrap}}" style="{{#ifeq:{{{style|}}}|plain|border:none;background:transparent;|{{{style|}}}}}"><!--
Opening tag
-->{{#switch:{{{2|pair}}}
|c|close =
|e|empty|s|single|v|void
|o|open
|p|pair = <{{#if:{{{link|}}}|[[HTML element#{{{1|tag}}}|{{{1|tag}}}]]|{{{1|tag}}}}}{{#if:{{{params|{{{attribs|}}}}}}| {{{params|{{{attribs}}}}}}}}
}}<!--
Content between tags
-->{{#switch:{{{2|pair}}}
|c|close = {{{content|}}}
|e|empty|s|single|v|void =  />
|o|open = >{{{content|}}}
|p|pair = {{#ifeq:{{{1|tag}}}|!--||>}}{{{content|...}}}
}}<!--
Closing tag
-->{{#switch:{{{2|pair}}}
|e|empty|s|single|v|void
|o|open =
|c|close
|p|pair = {{#ifeq:{{{1|tag}}}|!--|-->|</{{{1|tag}}}>}}
}}<!--
--></code><noinclude>
{{Documentation}}
</noinclude>
eae208bc1612c834de697fa3ee9b343966cf8602
Template:TemplateData header
10
49
90
89
2022-07-21T19:50:48Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
<div class="templatedata-header">{{#if:{{{noheader|}}}|<!--
noheader:
-->{{Template parameter usage|based=y}}|<!--
+header:
-->This is the {{#if:{{{nolink|}}}|<!--
+header, nolink TD
-->TemplateData|<!--
+header, +link [[TD]]; DEFAULT:
-->[[Wikipedia:TemplateData|TemplateData]]}}<!--
e.o. #if:nolink; DEFAULT:
--> for this template used by [[mw:Extension:TemplateWizard|TemplateWizard]], [[Wikipedia:VisualEditor|VisualEditor]] and other tools. {{Template parameter usage|based=y}}<!--
e.o. #if:noheader
-->}}
'''TemplateData for {{{1|{{BASEPAGENAME}}}}}'''
</div><includeonly><!--
check parameters
-->{{#invoke:Check for unknown parameters|check
|unknown={{template other|1=[[Category:Pages using TemplateData header with unknown parameters|_VALUE_]]}}
|template=Template:TemplateData header
|1 |nolink |noheader
|preview=<div class="error" style="font-weight:normal">Unknown parameter '_VALUE_' in [[Template:TemplateData header]].</div>
}}<!--
-->{{template other|{{sandbox other||
[[Category:Templates using TemplateData]]
}}}}</includeonly><!--
--><noinclude>{{Documentation}}</noinclude>
ddfbb4ae793846b96d4c06330417fa6ed4da2adc
Template:Template link
10
50
92
91
2022-07-21T19:50:48Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
{{[[Template:{{{1}}}|{{{1}}}]]}}<noinclude>{{documentation}}
<!-- Categories go on the /doc subpage and interwikis go on Wikidata. -->
</noinclude>
eabbec62efe3044a98ebb3ce9e7d4d43c222351d
Template:Template link expanded
10
51
94
93
2022-07-21T19:50:48Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
{{#Invoke:Template link general|main|code=on}}<noinclude>
{{Documentation|1=Template:Tlg/doc
|content = {{tlg/doc|tlx}}
}}
<!-- Add categories to the /doc subpage, not here! -->
</noinclude>
6c99696fee02f1da368ed20d2504e19bc15b1c13
Template:Template other
10
52
96
95
2022-07-21T19:50:48Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
{{#switch:
<!--If no or empty "demospace" parameter then detect namespace-->
{{#if:{{{demospace|}}}
| {{lc: {{{demospace}}} }} <!--Use lower case "demospace"-->
| {{#ifeq:{{NAMESPACE}}|{{ns:Template}}
| template
| other
}}
}}
| template = {{{1|}}}
| other
| #default = {{{2|}}}
}}<!--End switch--><noinclude>
{{documentation}}
<!-- Add categories and interwikis to the /doc subpage, not here! -->
</noinclude>
06fb13d264df967b5232141067eb7d2b67372d76
Template:Template parameter usage
10
53
98
97
2022-07-21T19:50:48Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
{{#switch:{{{label|}}}
|=[https://bambots.brucemyers.com/TemplateParam.php?wiki=enwiki&template={{Urlencode:{{#if:{{{1|}}}|{{ROOTPAGENAME:{{{1|}}}}}|{{ROOTPAGENAME}}}}}} {{#ifeq:{{yesno-no|{{{lc}}}}}|no|C|c}}lick here] to see a monthly parameter usage report for {{#if:{{{1|}}}|[[Template:{{ROOTPAGENAME:{{{1|}}}}}]]|this template}}{{#ifeq:{{yesno-no|{{{based}}}}}|yes| based on {{#if:{{{1|}}}|its|this}} TemplateData}}.
|None|none=[https://bambots.brucemyers.com/TemplateParam.php?wiki=enwiki&template={{Urlencode:{{#if:{{{1|}}}|{{ROOTPAGENAME:{{{1|}}}}}|{{ROOTPAGENAME}}}}}} {{#ifeq:{{yesno-no|{{{lc}}}}}|no|P|p}}arameter usage report]{{#ifeq:{{yesno-no|{{{based}}}}}|yes| based on {{#if:{{{1|}}}|its|this}} TemplateData}}
|for|For=[https://bambots.brucemyers.com/TemplateParam.php?wiki=enwiki&template={{Urlencode:{{#if:{{{1|}}}|{{ROOTPAGENAME:{{{1|}}}}}|{{ROOTPAGENAME}}}}}} {{#ifeq:{{yesno-no|{{{lc}}}}}|no|P|p}}arameter usage report] for {{#if:{{{1|}}}|[[Template:{{ROOTPAGENAME:{{{1|}}}}}]]|[[Template:{{ROOTPAGENAME}}]]}}{{#ifeq:{{yesno-no|{{{based}}}}}|yes| based on {{#if:{{{1|}}}|its|this}} TemplateData}}.
|#default=[https://bambots.brucemyers.com/TemplateParam.php?wiki=enwiki&template={{Urlencode:{{#if:{{{1|}}}|{{ROOTPAGENAME:{{{1|}}}}}|{{ROOTPAGENAME}}}}}} {{{label|}}}]{{#ifeq:{{yesno-no|{{{based}}}}}|yes| based on {{#if:{{{1|}}}|its|this}} TemplateData}}
}}<noinclude>
{{documentation}}
</noinclude>
b9cdd1b2e409313904f041c38562a3d6221cc017
Template:Tl
10
54
100
99
2022-07-21T19:50:48Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Template:Template link]]
{{Redirect category shell|
{{R from move}}
}}
d6593bb3b4a866249f55d0f34b047a71fe1f1529
Template:Tlx
10
55
102
101
2022-07-21T19:50:49Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Template:Template link expanded]]
{{Redirect category shell|
{{R from move}}
}}
1fec988ceb46cb324af228aac45d7cd25fcc9008
Template:Uses TemplateStyles
10
56
104
103
2022-07-21T19:50:49Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
<includeonly>{{#invoke:Uses TemplateStyles|main}}</includeonly><noinclude>
{{Uses TemplateStyles|Template:Uses TemplateStyles/example.css|nocat=true}}
{{documentation}}
<!-- Categories go on the /doc subpage and interwikis go on Wikidata. -->
</noinclude>
7e26d8f257e302bd8a3dcbe53f52741ae0884f74
Template:Yes
10
57
106
105
2022-07-21T19:50:49Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
<noinclude>
{| class="wikitable"
|-
|</noinclude>style="background:#9EFF9E;vertical-align:middle;text-align:{{{align|center}}};{{{style|}}}" class="table-yes"|{{{1|Yes}}}<noinclude>
|}
{{documentation}}
</noinclude>
d235fc79a2e65678ca64fc48366ae7aaddb27d0b
Template:Yesno
10
58
108
107
2022-07-21T19:50:49Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
{{<includeonly>safesubst:</includeonly>#switch: {{<includeonly>safesubst:</includeonly>lc: {{{1|¬}}} }}
|no
|n
|f
|false
|off
|0 = {{{no|<!-- null -->}}}
| = {{{blank|{{{no|<!-- null -->}}}}}}
|¬ = {{{¬|}}}
|yes
|y
|t
|true
|on
|1 = {{{yes|yes}}}
|#default = {{{def|{{{yes|yes}}}}}}
}}<noinclude>
{{Documentation}}
</noinclude>
629c2937bc5cf7cfe13cd2a598582af832782399
Template:Yesno-no
10
59
110
109
2022-07-21T19:50:49Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
{{safesubst:<noinclude />yesno|{{{1}}}|yes={{{yes|yes}}}|no={{{no|no}}}|blank={{{blank|no}}}|¬={{{¬|no}}}|def={{{def|no}}}}}<noinclude>
{{Documentation|Template:Yesno/doc}}
<!--Categories go in the doc page referenced above; interwikis go in Wikidata.-->
</noinclude>
1ad7b7800da1b867ead8f6ff8cef76e6201b3b56
Module:Arguments
828
60
112
111
2022-07-21T19:50:50Z
Wikiricky
1
1 revision imported
Scribunto
text/plain
-- This module provides easy processing of arguments passed to Scribunto from
-- #invoke. It is intended for use by other Lua modules, and should not be
-- called from #invoke directly.
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local arguments = {}
-- Generate four different tidyVal functions, so that we don't have to check the
-- options every time we call it.
local function tidyValDefault(key, val)
if type(val) == 'string' then
val = val:match('^%s*(.-)%s*$')
if val == '' then
return nil
else
return val
end
else
return val
end
end
local function tidyValTrimOnly(key, val)
if type(val) == 'string' then
return val:match('^%s*(.-)%s*$')
else
return val
end
end
local function tidyValRemoveBlanksOnly(key, val)
if type(val) == 'string' then
if val:find('%S') then
return val
else
return nil
end
else
return val
end
end
local function tidyValNoChange(key, val)
return val
end
local function matchesTitle(given, title)
local tp = type( given )
return (tp == 'string' or tp == 'number') and mw.title.new( given ).prefixedText == title
end
local translate_mt = { __index = function(t, k) return k end }
function arguments.getArgs(frame, options)
checkType('getArgs', 1, frame, 'table', true)
checkType('getArgs', 2, options, 'table', true)
frame = frame or {}
options = options or {}
--[[
-- Set up argument translation.
--]]
options.translate = options.translate or {}
if getmetatable(options.translate) == nil then
setmetatable(options.translate, translate_mt)
end
if options.backtranslate == nil then
options.backtranslate = {}
for k,v in pairs(options.translate) do
options.backtranslate[v] = k
end
end
if options.backtranslate and getmetatable(options.backtranslate) == nil then
setmetatable(options.backtranslate, {
__index = function(t, k)
if options.translate[k] ~= k then
return nil
else
return k
end
end
})
end
--[[
-- Get the argument tables. If we were passed a valid frame object, get the
-- frame arguments (fargs) and the parent frame arguments (pargs), depending
-- on the options set and on the parent frame's availability. If we weren't
-- passed a valid frame object, we are being called from another Lua module
-- or from the debug console, so assume that we were passed a table of args
-- directly, and assign it to a new variable (luaArgs).
--]]
local fargs, pargs, luaArgs
if type(frame.args) == 'table' and type(frame.getParent) == 'function' then
if options.wrappers then
--[[
-- The wrappers option makes Module:Arguments look up arguments in
-- either the frame argument table or the parent argument table, but
-- not both. This means that users can use either the #invoke syntax
-- or a wrapper template without the loss of performance associated
-- with looking arguments up in both the frame and the parent frame.
-- Module:Arguments will look up arguments in the parent frame
-- if it finds the parent frame's title in options.wrapper;
-- otherwise it will look up arguments in the frame object passed
-- to getArgs.
--]]
local parent = frame:getParent()
if not parent then
fargs = frame.args
else
local title = parent:getTitle():gsub('/sandbox$', '')
local found = false
if matchesTitle(options.wrappers, title) then
found = true
elseif type(options.wrappers) == 'table' then
for _,v in pairs(options.wrappers) do
if matchesTitle(v, title) then
found = true
break
end
end
end
-- We test for false specifically here so that nil (the default) acts like true.
if found or options.frameOnly == false then
pargs = parent.args
end
if not found or options.parentOnly == false then
fargs = frame.args
end
end
else
-- options.wrapper isn't set, so check the other options.
if not options.parentOnly then
fargs = frame.args
end
if not options.frameOnly then
local parent = frame:getParent()
pargs = parent and parent.args or nil
end
end
if options.parentFirst then
fargs, pargs = pargs, fargs
end
else
luaArgs = frame
end
-- Set the order of precedence of the argument tables. If the variables are
-- nil, nothing will be added to the table, which is how we avoid clashes
-- between the frame/parent args and the Lua args.
local argTables = {fargs}
argTables[#argTables + 1] = pargs
argTables[#argTables + 1] = luaArgs
--[[
-- Generate the tidyVal function. If it has been specified by the user, we
-- use that; if not, we choose one of four functions depending on the
-- options chosen. This is so that we don't have to call the options table
-- every time the function is called.
--]]
local tidyVal = options.valueFunc
if tidyVal then
if type(tidyVal) ~= 'function' then
error(
"bad value assigned to option 'valueFunc'"
.. '(function expected, got '
.. type(tidyVal)
.. ')',
2
)
end
elseif options.trim ~= false then
if options.removeBlanks ~= false then
tidyVal = tidyValDefault
else
tidyVal = tidyValTrimOnly
end
else
if options.removeBlanks ~= false then
tidyVal = tidyValRemoveBlanksOnly
else
tidyVal = tidyValNoChange
end
end
--[[
-- Set up the args, metaArgs and nilArgs tables. args will be the one
-- accessed from functions, and metaArgs will hold the actual arguments. Nil
-- arguments are memoized in nilArgs, and the metatable connects all of them
-- together.
--]]
local args, metaArgs, nilArgs, metatable = {}, {}, {}, {}
setmetatable(args, metatable)
local function mergeArgs(tables)
--[[
-- Accepts multiple tables as input and merges their keys and values
-- into one table. If a value is already present it is not overwritten;
-- tables listed earlier have precedence. We are also memoizing nil
-- values, which can be overwritten if they are 's' (soft).
--]]
for _, t in ipairs(tables) do
for key, val in pairs(t) do
if metaArgs[key] == nil and nilArgs[key] ~= 'h' then
local tidiedVal = tidyVal(key, val)
if tidiedVal == nil then
nilArgs[key] = 's'
else
metaArgs[key] = tidiedVal
end
end
end
end
end
--[[
-- Define metatable behaviour. Arguments are memoized in the metaArgs table,
-- and are only fetched from the argument tables once. Fetching arguments
-- from the argument tables is the most resource-intensive step in this
-- module, so we try and avoid it where possible. For this reason, nil
-- arguments are also memoized, in the nilArgs table. Also, we keep a record
-- in the metatable of when pairs and ipairs have been called, so we do not
-- run pairs and ipairs on the argument tables more than once. We also do
-- not run ipairs on fargs and pargs if pairs has already been run, as all
-- the arguments will already have been copied over.
--]]
metatable.__index = function (t, key)
--[[
-- Fetches an argument when the args table is indexed. First we check
-- to see if the value is memoized, and if not we try and fetch it from
-- the argument tables. When we check memoization, we need to check
-- metaArgs before nilArgs, as both can be non-nil at the same time.
-- If the argument is not present in metaArgs, we also check whether
-- pairs has been run yet. If pairs has already been run, we return nil.
-- This is because all the arguments will have already been copied into
-- metaArgs by the mergeArgs function, meaning that any other arguments
-- must be nil.
--]]
if type(key) == 'string' then
key = options.translate[key]
end
local val = metaArgs[key]
if val ~= nil then
return val
elseif metatable.donePairs or nilArgs[key] then
return nil
end
for _, argTable in ipairs(argTables) do
local argTableVal = tidyVal(key, argTable[key])
if argTableVal ~= nil then
metaArgs[key] = argTableVal
return argTableVal
end
end
nilArgs[key] = 'h'
return nil
end
metatable.__newindex = function (t, key, val)
-- This function is called when a module tries to add a new value to the
-- args table, or tries to change an existing value.
if type(key) == 'string' then
key = options.translate[key]
end
if options.readOnly then
error(
'could not write to argument table key "'
.. tostring(key)
.. '"; the table is read-only',
2
)
elseif options.noOverwrite and args[key] ~= nil then
error(
'could not write to argument table key "'
.. tostring(key)
.. '"; overwriting existing arguments is not permitted',
2
)
elseif val == nil then
--[[
-- If the argument is to be overwritten with nil, we need to erase
-- the value in metaArgs, so that __index, __pairs and __ipairs do
-- not use a previous existing value, if present; and we also need
-- to memoize the nil in nilArgs, so that the value isn't looked
-- up in the argument tables if it is accessed again.
--]]
metaArgs[key] = nil
nilArgs[key] = 'h'
else
metaArgs[key] = val
end
end
local function translatenext(invariant)
local k, v = next(invariant.t, invariant.k)
invariant.k = k
if k == nil then
return nil
elseif type(k) ~= 'string' or not options.backtranslate then
return k, v
else
local backtranslate = options.backtranslate[k]
if backtranslate == nil then
-- Skip this one. This is a tail call, so this won't cause stack overflow
return translatenext(invariant)
else
return backtranslate, v
end
end
end
metatable.__pairs = function ()
-- Called when pairs is run on the args table.
if not metatable.donePairs then
mergeArgs(argTables)
metatable.donePairs = true
end
return translatenext, { t = metaArgs }
end
local function inext(t, i)
-- This uses our __index metamethod
local v = t[i + 1]
if v ~= nil then
return i + 1, v
end
end
metatable.__ipairs = function (t)
-- Called when ipairs is run on the args table.
return inext, t, 0
end
return args
end
return arguments
3134ecce8429b810d445e29eae115e2ae4c36c53
Module:Check for unknown parameters
828
61
114
113
2022-07-21T19:50:50Z
Wikiricky
1
1 revision imported
Scribunto
text/plain
-- This module may be used to compare the arguments passed to the parent
-- with a list of arguments, returning a specified result if an argument is
-- not on the list
local p = {}
local function trim(s)
return s:match('^%s*(.-)%s*$')
end
local function isnotempty(s)
return s and s:match('%S')
end
local function clean(text)
-- Return text cleaned for display and truncated if too long.
-- Strip markers are replaced with dummy text representing the original wikitext.
local pos, truncated
local function truncate(text)
if truncated then
return ''
end
if mw.ustring.len(text) > 25 then
truncated = true
text = mw.ustring.sub(text, 1, 25) .. '...'
end
return mw.text.nowiki(text)
end
local parts = {}
for before, tag, remainder in text:gmatch('([^\127]*)\127[^\127]*%-(%l+)%-[^\127]*\127()') do
pos = remainder
table.insert(parts, truncate(before) .. '<' .. tag .. '>...</' .. tag .. '>')
end
table.insert(parts, truncate(text:sub(pos or 1)))
return table.concat(parts)
end
function p._check(args, pargs)
if type(args) ~= "table" or type(pargs) ~= "table" then
-- TODO: error handling
return
end
-- create the list of known args, regular expressions, and the return string
local knownargs = {}
local regexps = {}
for k, v in pairs(args) do
if type(k) == 'number' then
v = trim(v)
knownargs[v] = 1
elseif k:find('^regexp[1-9][0-9]*$') then
table.insert(regexps, '^' .. v .. '$')
end
end
-- loop over the parent args, and make sure they are on the list
local ignoreblank = isnotempty(args['ignoreblank'])
local showblankpos = isnotempty(args['showblankpositional'])
local values = {}
for k, v in pairs(pargs) do
if type(k) == 'string' and knownargs[k] == nil then
local knownflag = false
for _, regexp in ipairs(regexps) do
if mw.ustring.match(k, regexp) then
knownflag = true
break
end
end
if not knownflag and ( not ignoreblank or isnotempty(v) ) then
table.insert(values, clean(k))
end
elseif type(k) == 'number' and knownargs[tostring(k)] == nil then
local knownflag = false
for _, regexp in ipairs(regexps) do
if mw.ustring.match(tostring(k), regexp) then
knownflag = true
break
end
end
if not knownflag and ( showblankpos or isnotempty(v) ) then
table.insert(values, k .. ' = ' .. clean(v))
end
end
end
-- add results to the output tables
local res = {}
if #values > 0 then
local unknown_text = args['unknown'] or 'Found _VALUE_, '
if mw.getCurrentFrame():preprocess( "{{REVISIONID}}" ) == "" then
local preview_text = args['preview']
if isnotempty(preview_text) then
preview_text = require('Module:If preview')._warning({preview_text})
elseif preview == nil then
preview_text = unknown_text
end
unknown_text = preview_text
end
for _, v in pairs(values) do
-- Fix odd bug for | = which gets stripped to the empty string and
-- breaks category links
if v == '' then v = ' ' end
-- avoid error with v = 'example%2' ("invalid capture index")
local r = unknown_text:gsub('_VALUE_', {_VALUE_ = v})
table.insert(res, r)
end
end
return table.concat(res)
end
function p.check(frame)
local args = frame.args
local pargs = frame:getParent().args
return p._check(args, pargs)
end
return p
93db6d115d4328d2a5148bb42959105e367b663e
Module:Documentation
828
62
116
115
2022-07-21T19:50:51Z
Wikiricky
1
1 revision imported
Scribunto
text/plain
-- This module implements {{documentation}}.
-- Get required modules.
local getArgs = require('Module:Arguments').getArgs
-- Get the config table.
local cfg = mw.loadData('Module:Documentation/config')
local p = {}
-- Often-used functions.
local ugsub = mw.ustring.gsub
----------------------------------------------------------------------------
-- Helper functions
--
-- These are defined as local functions, but are made available in the p
-- table for testing purposes.
----------------------------------------------------------------------------
local function message(cfgKey, valArray, expectType)
--[[
-- Gets a message from the cfg table and formats it if appropriate.
-- The function raises an error if the value from the cfg table is not
-- of the type expectType. The default type for expectType is 'string'.
-- If the table valArray is present, strings such as $1, $2 etc. in the
-- message are substituted with values from the table keys [1], [2] etc.
-- For example, if the message "foo-message" had the value 'Foo $2 bar $1.',
-- message('foo-message', {'baz', 'qux'}) would return "Foo qux bar baz."
--]]
local msg = cfg[cfgKey]
expectType = expectType or 'string'
if type(msg) ~= expectType then
error('message: type error in message cfg.' .. cfgKey .. ' (' .. expectType .. ' expected, got ' .. type(msg) .. ')', 2)
end
if not valArray then
return msg
end
local function getMessageVal(match)
match = tonumber(match)
return valArray[match] or error('message: no value found for key $' .. match .. ' in message cfg.' .. cfgKey, 4)
end
return ugsub(msg, '$([1-9][0-9]*)', getMessageVal)
end
p.message = message
local function makeWikilink(page, display)
if display then
return mw.ustring.format('[[%s|%s]]', page, display)
else
return mw.ustring.format('[[%s]]', page)
end
end
p.makeWikilink = makeWikilink
local function makeCategoryLink(cat, sort)
local catns = mw.site.namespaces[14].name
return makeWikilink(catns .. ':' .. cat, sort)
end
p.makeCategoryLink = makeCategoryLink
local function makeUrlLink(url, display)
return mw.ustring.format('[%s %s]', url, display)
end
p.makeUrlLink = makeUrlLink
local function makeToolbar(...)
local ret = {}
local lim = select('#', ...)
if lim < 1 then
return nil
end
for i = 1, lim do
ret[#ret + 1] = select(i, ...)
end
-- 'documentation-toolbar'
return '<span class="' .. message('toolbar-class') .. '">('
.. table.concat(ret, ' | ') .. ')</span>'
end
p.makeToolbar = makeToolbar
----------------------------------------------------------------------------
-- Argument processing
----------------------------------------------------------------------------
local function makeInvokeFunc(funcName)
return function (frame)
local args = getArgs(frame, {
valueFunc = function (key, value)
if type(value) == 'string' then
value = value:match('^%s*(.-)%s*$') -- Remove whitespace.
if key == 'heading' or value ~= '' then
return value
else
return nil
end
else
return value
end
end
})
return p[funcName](args)
end
end
----------------------------------------------------------------------------
-- Entry points
----------------------------------------------------------------------------
function p.nonexistent(frame)
if mw.title.getCurrentTitle().subpageText == 'testcases' then
return frame:expandTemplate{title = 'module test cases notice'}
else
return p.main(frame)
end
end
p.main = makeInvokeFunc('_main')
function p._main(args)
--[[
-- This function defines logic flow for the module.
-- @args - table of arguments passed by the user
--]]
local env = p.getEnvironment(args)
local root = mw.html.create()
root
:wikitext(p._getModuleWikitext(args, env))
:wikitext(p.protectionTemplate(env))
:wikitext(p.sandboxNotice(args, env))
:tag('div')
-- 'documentation-container'
:addClass(message('container'))
:attr('role', 'complementary')
:attr('aria-labelledby', args.heading ~= '' and 'documentation-heading' or nil)
:attr('aria-label', args.heading == '' and 'Documentation' or nil)
:newline()
:tag('div')
-- 'documentation'
:addClass(message('main-div-classes'))
:newline()
:wikitext(p._startBox(args, env))
:wikitext(p._content(args, env))
:tag('div')
-- 'documentation-clear'
:addClass(message('clear'))
:done()
:newline()
:done()
:wikitext(p._endBox(args, env))
:done()
:wikitext(p.addTrackingCategories(env))
-- 'Module:Documentation/styles.css'
return mw.getCurrentFrame():extensionTag (
'templatestyles', '', {src=cfg['templatestyles']
}) .. tostring(root)
end
----------------------------------------------------------------------------
-- Environment settings
----------------------------------------------------------------------------
function p.getEnvironment(args)
--[[
-- Returns a table with information about the environment, including title
-- objects and other namespace- or path-related data.
-- @args - table of arguments passed by the user
--
-- Title objects include:
-- env.title - the page we are making documentation for (usually the current title)
-- env.templateTitle - the template (or module, file, etc.)
-- env.docTitle - the /doc subpage.
-- env.sandboxTitle - the /sandbox subpage.
-- env.testcasesTitle - the /testcases subpage.
--
-- Data includes:
-- env.protectionLevels - the protection levels table of the title object.
-- env.subjectSpace - the number of the title's subject namespace.
-- env.docSpace - the number of the namespace the title puts its documentation in.
-- env.docpageBase - the text of the base page of the /doc, /sandbox and /testcases pages, with namespace.
-- env.compareUrl - URL of the Special:ComparePages page comparing the sandbox with the template.
--
-- All table lookups are passed through pcall so that errors are caught. If an error occurs, the value
-- returned will be nil.
--]]
local env, envFuncs = {}, {}
-- Set up the metatable. If triggered we call the corresponding function in the envFuncs table. The value
-- returned by that function is memoized in the env table so that we don't call any of the functions
-- more than once. (Nils won't be memoized.)
setmetatable(env, {
__index = function (t, key)
local envFunc = envFuncs[key]
if envFunc then
local success, val = pcall(envFunc)
if success then
env[key] = val -- Memoise the value.
return val
end
end
return nil
end
})
function envFuncs.title()
-- The title object for the current page, or a test page passed with args.page.
local title
local titleArg = args.page
if titleArg then
title = mw.title.new(titleArg)
else
title = mw.title.getCurrentTitle()
end
return title
end
function envFuncs.templateTitle()
--[[
-- The template (or module, etc.) title object.
-- Messages:
-- 'sandbox-subpage' --> 'sandbox'
-- 'testcases-subpage' --> 'testcases'
--]]
local subjectSpace = env.subjectSpace
local title = env.title
local subpage = title.subpageText
if subpage == message('sandbox-subpage') or subpage == message('testcases-subpage') then
return mw.title.makeTitle(subjectSpace, title.baseText)
else
return mw.title.makeTitle(subjectSpace, title.text)
end
end
function envFuncs.docTitle()
--[[
-- Title object of the /doc subpage.
-- Messages:
-- 'doc-subpage' --> 'doc'
--]]
local title = env.title
local docname = args[1] -- User-specified doc page.
local docpage
if docname then
docpage = docname
else
docpage = env.docpageBase .. '/' .. message('doc-subpage')
end
return mw.title.new(docpage)
end
function envFuncs.sandboxTitle()
--[[
-- Title object for the /sandbox subpage.
-- Messages:
-- 'sandbox-subpage' --> 'sandbox'
--]]
return mw.title.new(env.docpageBase .. '/' .. message('sandbox-subpage'))
end
function envFuncs.testcasesTitle()
--[[
-- Title object for the /testcases subpage.
-- Messages:
-- 'testcases-subpage' --> 'testcases'
--]]
return mw.title.new(env.docpageBase .. '/' .. message('testcases-subpage'))
end
function envFuncs.protectionLevels()
-- The protection levels table of the title object.
return env.title.protectionLevels
end
function envFuncs.subjectSpace()
-- The subject namespace number.
return mw.site.namespaces[env.title.namespace].subject.id
end
function envFuncs.docSpace()
-- The documentation namespace number. For most namespaces this is the
-- same as the subject namespace. However, pages in the Article, File,
-- MediaWiki or Category namespaces must have their /doc, /sandbox and
-- /testcases pages in talk space.
local subjectSpace = env.subjectSpace
if subjectSpace == 0 or subjectSpace == 6 or subjectSpace == 8 or subjectSpace == 14 then
return subjectSpace + 1
else
return subjectSpace
end
end
function envFuncs.docpageBase()
-- The base page of the /doc, /sandbox, and /testcases subpages.
-- For some namespaces this is the talk page, rather than the template page.
local templateTitle = env.templateTitle
local docSpace = env.docSpace
local docSpaceText = mw.site.namespaces[docSpace].name
-- Assemble the link. docSpace is never the main namespace, so we can hardcode the colon.
return docSpaceText .. ':' .. templateTitle.text
end
function envFuncs.compareUrl()
-- Diff link between the sandbox and the main template using [[Special:ComparePages]].
local templateTitle = env.templateTitle
local sandboxTitle = env.sandboxTitle
if templateTitle.exists and sandboxTitle.exists then
local compareUrl = mw.uri.fullUrl(
'Special:ComparePages',
{ page1 = templateTitle.prefixedText, page2 = sandboxTitle.prefixedText}
)
return tostring(compareUrl)
else
return nil
end
end
return env
end
----------------------------------------------------------------------------
-- Auxiliary templates
----------------------------------------------------------------------------
p.getModuleWikitext = makeInvokeFunc('_getModuleWikitext')
function p._getModuleWikitext(args, env)
local currentTitle = mw.title.getCurrentTitle()
if currentTitle.contentModel ~= 'Scribunto' then return end
pcall(require, currentTitle.prefixedText) -- if it fails, we don't care
local moduleWikitext = package.loaded["Module:Module wikitext"]
if moduleWikitext then
return moduleWikitext.main()
end
end
function p.sandboxNotice(args, env)
--[=[
-- Generates a sandbox notice for display above sandbox pages.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'sandbox-notice-image' --> '[[Image:Sandbox.svg|50px|alt=|link=]]'
-- 'sandbox-notice-blurb' --> 'This is the $1 for $2.'
-- 'sandbox-notice-diff-blurb' --> 'This is the $1 for $2 ($3).'
-- 'sandbox-notice-pagetype-template' --> '[[Wikipedia:Template test cases|template sandbox]] page'
-- 'sandbox-notice-pagetype-module' --> '[[Wikipedia:Template test cases|module sandbox]] page'
-- 'sandbox-notice-pagetype-other' --> 'sandbox page'
-- 'sandbox-notice-compare-link-display' --> 'diff'
-- 'sandbox-notice-testcases-blurb' --> 'See also the companion subpage for $1.'
-- 'sandbox-notice-testcases-link-display' --> 'test cases'
-- 'sandbox-category' --> 'Template sandboxes'
--]=]
local title = env.title
local sandboxTitle = env.sandboxTitle
local templateTitle = env.templateTitle
local subjectSpace = env.subjectSpace
if not (subjectSpace and title and sandboxTitle and templateTitle
and mw.title.equals(title, sandboxTitle)) then
return nil
end
-- Build the table of arguments to pass to {{ombox}}. We need just two fields, "image" and "text".
local omargs = {}
omargs.image = message('sandbox-notice-image')
-- Get the text. We start with the opening blurb, which is something like
-- "This is the template sandbox for [[Template:Foo]] (diff)."
local text = ''
local pagetype
if subjectSpace == 10 then
pagetype = message('sandbox-notice-pagetype-template')
elseif subjectSpace == 828 then
pagetype = message('sandbox-notice-pagetype-module')
else
pagetype = message('sandbox-notice-pagetype-other')
end
local templateLink = makeWikilink(templateTitle.prefixedText)
local compareUrl = env.compareUrl
if compareUrl then
local compareDisplay = message('sandbox-notice-compare-link-display')
local compareLink = makeUrlLink(compareUrl, compareDisplay)
text = text .. message('sandbox-notice-diff-blurb', {pagetype, templateLink, compareLink})
else
text = text .. message('sandbox-notice-blurb', {pagetype, templateLink})
end
-- Get the test cases page blurb if the page exists. This is something like
-- "See also the companion subpage for [[Template:Foo/testcases|test cases]]."
local testcasesTitle = env.testcasesTitle
if testcasesTitle and testcasesTitle.exists then
if testcasesTitle.contentModel == "Scribunto" then
local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display')
local testcasesRunLinkDisplay = message('sandbox-notice-testcases-run-link-display')
local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay)
local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay)
text = text .. '<br />' .. message('sandbox-notice-testcases-run-blurb', {testcasesLink, testcasesRunLink})
else
local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display')
local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay)
text = text .. '<br />' .. message('sandbox-notice-testcases-blurb', {testcasesLink})
end
end
-- Add the sandbox to the sandbox category.
omargs.text = text .. makeCategoryLink(message('sandbox-category'))
-- 'documentation-clear'
return '<div class="' .. message('clear') .. '"></div>'
.. require('Module:Message box').main('ombox', omargs)
end
function p.protectionTemplate(env)
-- Generates the padlock icon in the top right.
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'protection-template' --> 'pp-template'
-- 'protection-template-args' --> {docusage = 'yes'}
local protectionLevels = env.protectionLevels
if not protectionLevels then
return nil
end
local editProt = protectionLevels.edit and protectionLevels.edit[1]
local moveProt = protectionLevels.move and protectionLevels.move[1]
if editProt then
-- The page is edit-protected.
return require('Module:Protection banner')._main{
message('protection-reason-edit'), small = true
}
elseif moveProt and moveProt ~= 'autoconfirmed' then
-- The page is move-protected but not edit-protected. Exclude move
-- protection with the level "autoconfirmed", as this is equivalent to
-- no move protection at all.
return require('Module:Protection banner')._main{
action = 'move', small = true
}
else
return nil
end
end
----------------------------------------------------------------------------
-- Start box
----------------------------------------------------------------------------
p.startBox = makeInvokeFunc('_startBox')
function p._startBox(args, env)
--[[
-- This function generates the start box.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- The actual work is done by p.makeStartBoxLinksData and p.renderStartBoxLinks which make
-- the [view] [edit] [history] [purge] links, and by p.makeStartBoxData and p.renderStartBox
-- which generate the box HTML.
--]]
env = env or p.getEnvironment(args)
local links
local content = args.content
if not content or args[1] then
-- No need to include the links if the documentation is on the template page itself.
local linksData = p.makeStartBoxLinksData(args, env)
if linksData then
links = p.renderStartBoxLinks(linksData)
end
end
-- Generate the start box html.
local data = p.makeStartBoxData(args, env, links)
if data then
return p.renderStartBox(data)
else
-- User specified no heading.
return nil
end
end
function p.makeStartBoxLinksData(args, env)
--[[
-- Does initial processing of data to make the [view] [edit] [history] [purge] links.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'view-link-display' --> 'view'
-- 'edit-link-display' --> 'edit'
-- 'history-link-display' --> 'history'
-- 'purge-link-display' --> 'purge'
-- 'module-preload' --> 'Template:Documentation/preload-module-doc'
-- 'docpage-preload' --> 'Template:Documentation/preload'
-- 'create-link-display' --> 'create'
--]]
local subjectSpace = env.subjectSpace
local title = env.title
local docTitle = env.docTitle
if not title or not docTitle then
return nil
end
if docTitle.isRedirect then
docTitle = docTitle.redirectTarget
end
local data = {}
data.title = title
data.docTitle = docTitle
-- View, display, edit, and purge links if /doc exists.
data.viewLinkDisplay = message('view-link-display')
data.editLinkDisplay = message('edit-link-display')
data.historyLinkDisplay = message('history-link-display')
data.purgeLinkDisplay = message('purge-link-display')
-- Create link if /doc doesn't exist.
local preload = args.preload
if not preload then
if subjectSpace == 828 then -- Module namespace
preload = message('module-preload')
else
preload = message('docpage-preload')
end
end
data.preload = preload
data.createLinkDisplay = message('create-link-display')
return data
end
function p.renderStartBoxLinks(data)
--[[
-- Generates the [view][edit][history][purge] or [create][purge] links from the data table.
-- @data - a table of data generated by p.makeStartBoxLinksData
--]]
local function escapeBrackets(s)
-- Escapes square brackets with HTML entities.
s = s:gsub('%[', '[') -- Replace square brackets with HTML entities.
s = s:gsub('%]', ']')
return s
end
local ret
local docTitle = data.docTitle
local title = data.title
local purgeLink = makeUrlLink(title:fullUrl{action = 'purge'}, data.purgeLinkDisplay)
if docTitle.exists then
local viewLink = makeWikilink(docTitle.prefixedText, data.viewLinkDisplay)
local editLink = makeUrlLink(docTitle:fullUrl{action = 'edit'}, data.editLinkDisplay)
local historyLink = makeUrlLink(docTitle:fullUrl{action = 'history'}, data.historyLinkDisplay)
ret = '[%s] [%s] [%s] [%s]'
ret = escapeBrackets(ret)
ret = mw.ustring.format(ret, viewLink, editLink, historyLink, purgeLink)
else
local createLink = makeUrlLink(docTitle:fullUrl{action = 'edit', preload = data.preload}, data.createLinkDisplay)
ret = '[%s] [%s]'
ret = escapeBrackets(ret)
ret = mw.ustring.format(ret, createLink, purgeLink)
end
return ret
end
function p.makeStartBoxData(args, env, links)
--[=[
-- Does initial processing of data to pass to the start-box render function, p.renderStartBox.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- @links - a string containing the [view][edit][history][purge] links - could be nil if there's an error.
--
-- Messages:
-- 'documentation-icon-wikitext' --> '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]'
-- 'template-namespace-heading' --> 'Template documentation'
-- 'module-namespace-heading' --> 'Module documentation'
-- 'file-namespace-heading' --> 'Summary'
-- 'other-namespaces-heading' --> 'Documentation'
-- 'testcases-create-link-display' --> 'create'
--]=]
local subjectSpace = env.subjectSpace
if not subjectSpace then
-- Default to an "other namespaces" namespace, so that we get at least some output
-- if an error occurs.
subjectSpace = 2
end
local data = {}
-- Heading
local heading = args.heading -- Blank values are not removed.
if heading == '' then
-- Don't display the start box if the heading arg is defined but blank.
return nil
end
if heading then
data.heading = heading
elseif subjectSpace == 10 then -- Template namespace
data.heading = message('documentation-icon-wikitext') .. ' ' .. message('template-namespace-heading')
elseif subjectSpace == 828 then -- Module namespace
data.heading = message('documentation-icon-wikitext') .. ' ' .. message('module-namespace-heading')
elseif subjectSpace == 6 then -- File namespace
data.heading = message('file-namespace-heading')
else
data.heading = message('other-namespaces-heading')
end
-- Heading CSS
local headingStyle = args['heading-style']
if headingStyle then
data.headingStyleText = headingStyle
else
-- 'documentation-heading'
data.headingClass = message('main-div-heading-class')
end
-- Data for the [view][edit][history][purge] or [create] links.
if links then
-- 'mw-editsection-like plainlinks'
data.linksClass = message('start-box-link-classes')
data.links = links
end
return data
end
function p.renderStartBox(data)
-- Renders the start box html.
-- @data - a table of data generated by p.makeStartBoxData.
local sbox = mw.html.create('div')
sbox
-- 'documentation-startbox'
:addClass(message('start-box-class'))
:newline()
:tag('span')
:addClass(data.headingClass)
:attr('id', 'documentation-heading')
:cssText(data.headingStyleText)
:wikitext(data.heading)
local links = data.links
if links then
sbox:tag('span')
:addClass(data.linksClass)
:attr('id', data.linksId)
:wikitext(links)
end
return tostring(sbox)
end
----------------------------------------------------------------------------
-- Documentation content
----------------------------------------------------------------------------
p.content = makeInvokeFunc('_content')
function p._content(args, env)
-- Displays the documentation contents
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
env = env or p.getEnvironment(args)
local docTitle = env.docTitle
local content = args.content
if not content and docTitle and docTitle.exists then
content = args._content or mw.getCurrentFrame():expandTemplate{title = docTitle.prefixedText}
end
-- The line breaks below are necessary so that "=== Headings ===" at the start and end
-- of docs are interpreted correctly.
return '\n' .. (content or '') .. '\n'
end
p.contentTitle = makeInvokeFunc('_contentTitle')
function p._contentTitle(args, env)
env = env or p.getEnvironment(args)
local docTitle = env.docTitle
if not args.content and docTitle and docTitle.exists then
return docTitle.prefixedText
else
return ''
end
end
----------------------------------------------------------------------------
-- End box
----------------------------------------------------------------------------
p.endBox = makeInvokeFunc('_endBox')
function p._endBox(args, env)
--[=[
-- This function generates the end box (also known as the link box).
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
--]=]
-- Get environment data.
env = env or p.getEnvironment(args)
local subjectSpace = env.subjectSpace
local docTitle = env.docTitle
if not subjectSpace or not docTitle then
return nil
end
-- Check whether we should output the end box at all. Add the end
-- box by default if the documentation exists or if we are in the
-- user, module or template namespaces.
local linkBox = args['link box']
if linkBox == 'off'
or not (
docTitle.exists
or subjectSpace == 2
or subjectSpace == 828
or subjectSpace == 10
)
then
return nil
end
-- Assemble the link box.
local text = ''
if linkBox then
text = text .. linkBox
else
text = text .. (p.makeDocPageBlurb(args, env) or '') -- "This documentation is transcluded from [[Foo]]."
if subjectSpace == 2 or subjectSpace == 10 or subjectSpace == 828 then
-- We are in the user, template or module namespaces.
-- Add sandbox and testcases links.
-- "Editors can experiment in this template's sandbox and testcases pages."
text = text .. (p.makeExperimentBlurb(args, env) or '') .. '<br />'
if not args.content and not args[1] then
-- "Please add categories to the /doc subpage."
-- Don't show this message with inline docs or with an explicitly specified doc page,
-- as then it is unclear where to add the categories.
text = text .. (p.makeCategoriesBlurb(args, env) or '')
end
text = text .. ' ' .. (p.makeSubpagesBlurb(args, env) or '') --"Subpages of this template"
end
end
local box = mw.html.create('div')
-- 'documentation-metadata'
box:attr('role', 'note')
:addClass(message('end-box-class'))
-- 'plainlinks'
:addClass(message('end-box-plainlinks'))
:wikitext(text)
:done()
return '\n' .. tostring(box)
end
function p.makeDocPageBlurb(args, env)
--[=[
-- Makes the blurb "This documentation is transcluded from [[Template:Foo]] (edit, history)".
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'edit-link-display' --> 'edit'
-- 'history-link-display' --> 'history'
-- 'transcluded-from-blurb' -->
-- 'The above [[Wikipedia:Template documentation|documentation]]
-- is [[Help:Transclusion|transcluded]] from $1.'
-- 'module-preload' --> 'Template:Documentation/preload-module-doc'
-- 'create-link-display' --> 'create'
-- 'create-module-doc-blurb' -->
-- 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].'
--]=]
local docTitle = env.docTitle
if not docTitle then
return nil
end
local ret
if docTitle.exists then
-- /doc exists; link to it.
local docLink = makeWikilink(docTitle.prefixedText)
local editUrl = docTitle:fullUrl{action = 'edit'}
local editDisplay = message('edit-link-display')
local editLink = makeUrlLink(editUrl, editDisplay)
local historyUrl = docTitle:fullUrl{action = 'history'}
local historyDisplay = message('history-link-display')
local historyLink = makeUrlLink(historyUrl, historyDisplay)
ret = message('transcluded-from-blurb', {docLink})
.. ' '
.. makeToolbar(editLink, historyLink)
.. '<br />'
elseif env.subjectSpace == 828 then
-- /doc does not exist; ask to create it.
local createUrl = docTitle:fullUrl{action = 'edit', preload = message('module-preload')}
local createDisplay = message('create-link-display')
local createLink = makeUrlLink(createUrl, createDisplay)
ret = message('create-module-doc-blurb', {createLink})
.. '<br />'
end
return ret
end
function p.makeExperimentBlurb(args, env)
--[[
-- Renders the text "Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages."
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'sandbox-link-display' --> 'sandbox'
-- 'sandbox-edit-link-display' --> 'edit'
-- 'compare-link-display' --> 'diff'
-- 'module-sandbox-preload' --> 'Template:Documentation/preload-module-sandbox'
-- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox'
-- 'sandbox-create-link-display' --> 'create'
-- 'mirror-edit-summary' --> 'Create sandbox version of $1'
-- 'mirror-link-display' --> 'mirror'
-- 'mirror-link-preload' --> 'Template:Documentation/mirror'
-- 'sandbox-link-display' --> 'sandbox'
-- 'testcases-link-display' --> 'testcases'
-- 'testcases-edit-link-display'--> 'edit'
-- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox'
-- 'testcases-create-link-display' --> 'create'
-- 'testcases-link-display' --> 'testcases'
-- 'testcases-edit-link-display' --> 'edit'
-- 'module-testcases-preload' --> 'Template:Documentation/preload-module-testcases'
-- 'template-testcases-preload' --> 'Template:Documentation/preload-testcases'
-- 'experiment-blurb-module' --> 'Editors can experiment in this module's $1 and $2 pages.'
-- 'experiment-blurb-template' --> 'Editors can experiment in this template's $1 and $2 pages.'
--]]
local subjectSpace = env.subjectSpace
local templateTitle = env.templateTitle
local sandboxTitle = env.sandboxTitle
local testcasesTitle = env.testcasesTitle
local templatePage = templateTitle.prefixedText
if not subjectSpace or not templateTitle or not sandboxTitle or not testcasesTitle then
return nil
end
-- Make links.
local sandboxLinks, testcasesLinks
if sandboxTitle.exists then
local sandboxPage = sandboxTitle.prefixedText
local sandboxDisplay = message('sandbox-link-display')
local sandboxLink = makeWikilink(sandboxPage, sandboxDisplay)
local sandboxEditUrl = sandboxTitle:fullUrl{action = 'edit'}
local sandboxEditDisplay = message('sandbox-edit-link-display')
local sandboxEditLink = makeUrlLink(sandboxEditUrl, sandboxEditDisplay)
local compareUrl = env.compareUrl
local compareLink
if compareUrl then
local compareDisplay = message('compare-link-display')
compareLink = makeUrlLink(compareUrl, compareDisplay)
end
sandboxLinks = sandboxLink .. ' ' .. makeToolbar(sandboxEditLink, compareLink)
else
local sandboxPreload
if subjectSpace == 828 then
sandboxPreload = message('module-sandbox-preload')
else
sandboxPreload = message('template-sandbox-preload')
end
local sandboxCreateUrl = sandboxTitle:fullUrl{action = 'edit', preload = sandboxPreload}
local sandboxCreateDisplay = message('sandbox-create-link-display')
local sandboxCreateLink = makeUrlLink(sandboxCreateUrl, sandboxCreateDisplay)
local mirrorSummary = message('mirror-edit-summary', {makeWikilink(templatePage)})
local mirrorPreload = message('mirror-link-preload')
local mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = mirrorPreload, summary = mirrorSummary}
if subjectSpace == 828 then
mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = templateTitle.prefixedText, summary = mirrorSummary}
end
local mirrorDisplay = message('mirror-link-display')
local mirrorLink = makeUrlLink(mirrorUrl, mirrorDisplay)
sandboxLinks = message('sandbox-link-display') .. ' ' .. makeToolbar(sandboxCreateLink, mirrorLink)
end
if testcasesTitle.exists then
local testcasesPage = testcasesTitle.prefixedText
local testcasesDisplay = message('testcases-link-display')
local testcasesLink = makeWikilink(testcasesPage, testcasesDisplay)
local testcasesEditUrl = testcasesTitle:fullUrl{action = 'edit'}
local testcasesEditDisplay = message('testcases-edit-link-display')
local testcasesEditLink = makeUrlLink(testcasesEditUrl, testcasesEditDisplay)
-- for Modules, add testcases run link if exists
if testcasesTitle.contentModel == "Scribunto" and testcasesTitle.talkPageTitle and testcasesTitle.talkPageTitle.exists then
local testcasesRunLinkDisplay = message('testcases-run-link-display')
local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay)
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink, testcasesRunLink)
else
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink)
end
else
local testcasesPreload
if subjectSpace == 828 then
testcasesPreload = message('module-testcases-preload')
else
testcasesPreload = message('template-testcases-preload')
end
local testcasesCreateUrl = testcasesTitle:fullUrl{action = 'edit', preload = testcasesPreload}
local testcasesCreateDisplay = message('testcases-create-link-display')
local testcasesCreateLink = makeUrlLink(testcasesCreateUrl, testcasesCreateDisplay)
testcasesLinks = message('testcases-link-display') .. ' ' .. makeToolbar(testcasesCreateLink)
end
local messageName
if subjectSpace == 828 then
messageName = 'experiment-blurb-module'
else
messageName = 'experiment-blurb-template'
end
return message(messageName, {sandboxLinks, testcasesLinks})
end
function p.makeCategoriesBlurb(args, env)
--[[
-- Generates the text "Please add categories to the /doc subpage."
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'doc-link-display' --> '/doc'
-- 'add-categories-blurb' --> 'Please add categories to the $1 subpage.'
--]]
local docTitle = env.docTitle
if not docTitle then
return nil
end
local docPathLink = makeWikilink(docTitle.prefixedText, message('doc-link-display'))
return message('add-categories-blurb', {docPathLink})
end
function p.makeSubpagesBlurb(args, env)
--[[
-- Generates the "Subpages of this template" link.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'template-pagetype' --> 'template'
-- 'module-pagetype' --> 'module'
-- 'default-pagetype' --> 'page'
-- 'subpages-link-display' --> 'Subpages of this $1'
--]]
local subjectSpace = env.subjectSpace
local templateTitle = env.templateTitle
if not subjectSpace or not templateTitle then
return nil
end
local pagetype
if subjectSpace == 10 then
pagetype = message('template-pagetype')
elseif subjectSpace == 828 then
pagetype = message('module-pagetype')
else
pagetype = message('default-pagetype')
end
local subpagesLink = makeWikilink(
'Special:PrefixIndex/' .. templateTitle.prefixedText .. '/',
message('subpages-link-display', {pagetype})
)
return message('subpages-blurb', {subpagesLink})
end
----------------------------------------------------------------------------
-- Tracking categories
----------------------------------------------------------------------------
function p.addTrackingCategories(env)
--[[
-- Check if {{documentation}} is transcluded on a /doc or /testcases page.
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'display-strange-usage-category' --> true
-- 'doc-subpage' --> 'doc'
-- 'testcases-subpage' --> 'testcases'
-- 'strange-usage-category' --> 'Wikipedia pages with strange ((documentation)) usage'
--
-- /testcases pages in the module namespace are not categorised, as they may have
-- {{documentation}} transcluded automatically.
--]]
local title = env.title
local subjectSpace = env.subjectSpace
if not title or not subjectSpace then
return nil
end
local subpage = title.subpageText
local ret = ''
if message('display-strange-usage-category', nil, 'boolean')
and (
subpage == message('doc-subpage')
or subjectSpace ~= 828 and subpage == message('testcases-subpage')
)
then
ret = ret .. makeCategoryLink(message('strange-usage-category'))
end
return ret
end
return p
95ab9de543475e37250dc94558a5508a3c7c3dfc
Module:Documentation/config
828
63
118
117
2022-07-21T19:50:51Z
Wikiricky
1
1 revision imported
Scribunto
text/plain
----------------------------------------------------------------------------------------------------
--
-- Configuration for Module:Documentation
--
-- Here you can set the values of the parameters and messages used in Module:Documentation to
-- localise it to your wiki and your language. Unless specified otherwise, values given here
-- should be string values.
----------------------------------------------------------------------------------------------------
local cfg = {} -- Do not edit this line.
----------------------------------------------------------------------------------------------------
-- Protection template configuration
----------------------------------------------------------------------------------------------------
-- cfg['protection-reason-edit']
-- The protection reason for edit-protected templates to pass to
-- [[Module:Protection banner]].
cfg['protection-reason-edit'] = 'template'
--[[
----------------------------------------------------------------------------------------------------
-- Sandbox notice configuration
--
-- On sandbox pages the module can display a template notifying users that the current page is a
-- sandbox, and the location of test cases pages, etc. The module decides whether the page is a
-- sandbox or not based on the value of cfg['sandbox-subpage']. The following settings configure the
-- messages that the notices contains.
----------------------------------------------------------------------------------------------------
--]]
-- cfg['sandbox-notice-image']
-- The image displayed in the sandbox notice.
cfg['sandbox-notice-image'] = '[[File:Sandbox.svg|50px|alt=|link=]]'
--[[
-- cfg['sandbox-notice-pagetype-template']
-- cfg['sandbox-notice-pagetype-module']
-- cfg['sandbox-notice-pagetype-other']
-- The page type of the sandbox page. The message that is displayed depends on the current subject
-- namespace. This message is used in either cfg['sandbox-notice-blurb'] or
-- cfg['sandbox-notice-diff-blurb'].
--]]
cfg['sandbox-notice-pagetype-template'] = '[[Wikipedia:Template test cases|template sandbox]] page'
cfg['sandbox-notice-pagetype-module'] = '[[Wikipedia:Template test cases|module sandbox]] page'
cfg['sandbox-notice-pagetype-other'] = 'sandbox page'
--[[
-- cfg['sandbox-notice-blurb']
-- cfg['sandbox-notice-diff-blurb']
-- cfg['sandbox-notice-diff-display']
-- Either cfg['sandbox-notice-blurb'] or cfg['sandbox-notice-diff-blurb'] is the opening sentence
-- of the sandbox notice. The latter has a diff link, but the former does not. $1 is the page
-- type, which is either cfg['sandbox-notice-pagetype-template'],
-- cfg['sandbox-notice-pagetype-module'] or cfg['sandbox-notice-pagetype-other'] depending what
-- namespace we are in. $2 is a link to the main template page, and $3 is a diff link between
-- the sandbox and the main template. The display value of the diff link is set by
-- cfg['sandbox-notice-compare-link-display'].
--]]
cfg['sandbox-notice-blurb'] = 'This is the $1 for $2.'
cfg['sandbox-notice-diff-blurb'] = 'This is the $1 for $2 ($3).'
cfg['sandbox-notice-compare-link-display'] = 'diff'
--[[
-- cfg['sandbox-notice-testcases-blurb']
-- cfg['sandbox-notice-testcases-link-display']
-- cfg['sandbox-notice-testcases-run-blurb']
-- cfg['sandbox-notice-testcases-run-link-display']
-- cfg['sandbox-notice-testcases-blurb'] is a sentence notifying the user that there is a test cases page
-- corresponding to this sandbox that they can edit. $1 is a link to the test cases page.
-- cfg['sandbox-notice-testcases-link-display'] is the display value for that link.
-- cfg['sandbox-notice-testcases-run-blurb'] is a sentence notifying the user that there is a test cases page
-- corresponding to this sandbox that they can edit, along with a link to run it. $1 is a link to the test
-- cases page, and $2 is a link to the page to run it.
-- cfg['sandbox-notice-testcases-run-link-display'] is the display value for the link to run the test
-- cases.
--]]
cfg['sandbox-notice-testcases-blurb'] = 'See also the companion subpage for $1.'
cfg['sandbox-notice-testcases-link-display'] = 'test cases'
cfg['sandbox-notice-testcases-run-blurb'] = 'See also the companion subpage for $1 ($2).'
cfg['sandbox-notice-testcases-run-link-display'] = 'run'
-- cfg['sandbox-category']
-- A category to add to all template sandboxes.
cfg['sandbox-category'] = 'Template sandboxes'
----------------------------------------------------------------------------------------------------
-- Start box configuration
----------------------------------------------------------------------------------------------------
-- cfg['documentation-icon-wikitext']
-- The wikitext for the icon shown at the top of the template.
cfg['documentation-icon-wikitext'] = '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]'
-- cfg['template-namespace-heading']
-- The heading shown in the template namespace.
cfg['template-namespace-heading'] = 'Template documentation'
-- cfg['module-namespace-heading']
-- The heading shown in the module namespace.
cfg['module-namespace-heading'] = 'Module documentation'
-- cfg['file-namespace-heading']
-- The heading shown in the file namespace.
cfg['file-namespace-heading'] = 'Summary'
-- cfg['other-namespaces-heading']
-- The heading shown in other namespaces.
cfg['other-namespaces-heading'] = 'Documentation'
-- cfg['view-link-display']
-- The text to display for "view" links.
cfg['view-link-display'] = 'view'
-- cfg['edit-link-display']
-- The text to display for "edit" links.
cfg['edit-link-display'] = 'edit'
-- cfg['history-link-display']
-- The text to display for "history" links.
cfg['history-link-display'] = 'history'
-- cfg['purge-link-display']
-- The text to display for "purge" links.
cfg['purge-link-display'] = 'purge'
-- cfg['create-link-display']
-- The text to display for "create" links.
cfg['create-link-display'] = 'create'
----------------------------------------------------------------------------------------------------
-- Link box (end box) configuration
----------------------------------------------------------------------------------------------------
-- cfg['transcluded-from-blurb']
-- Notice displayed when the docs are transcluded from another page. $1 is a wikilink to that page.
cfg['transcluded-from-blurb'] = 'The above [[Wikipedia:Template documentation|documentation]] is [[Help:Transclusion|transcluded]] from $1.'
--[[
-- cfg['create-module-doc-blurb']
-- Notice displayed in the module namespace when the documentation subpage does not exist.
-- $1 is a link to create the documentation page with the preload cfg['module-preload'] and the
-- display cfg['create-link-display'].
--]]
cfg['create-module-doc-blurb'] = 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].'
----------------------------------------------------------------------------------------------------
-- Experiment blurb configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['experiment-blurb-template']
-- cfg['experiment-blurb-module']
-- The experiment blurb is the text inviting editors to experiment in sandbox and test cases pages.
-- It is only shown in the template and module namespaces. With the default English settings, it
-- might look like this:
--
-- Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages.
--
-- In this example, "sandbox", "edit", "diff", "testcases", and "edit" would all be links.
--
-- There are two versions, cfg['experiment-blurb-template'] and cfg['experiment-blurb-module'], depending
-- on what namespace we are in.
--
-- Parameters:
--
-- $1 is a link to the sandbox page. If the sandbox exists, it is in the following format:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-edit-link-display'] | cfg['compare-link-display'])
--
-- If the sandbox doesn't exist, it is in the format:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-create-link-display'] | cfg['mirror-link-display'])
--
-- The link for cfg['sandbox-create-link-display'] link preloads the page with cfg['template-sandbox-preload']
-- or cfg['module-sandbox-preload'], depending on the current namespace. The link for cfg['mirror-link-display']
-- loads a default edit summary of cfg['mirror-edit-summary'].
--
-- $2 is a link to the test cases page. If the test cases page exists, it is in the following format:
--
-- cfg['testcases-link-display'] (cfg['testcases-edit-link-display'] | cfg['testcases-run-link-display'])
--
-- If the test cases page doesn't exist, it is in the format:
--
-- cfg['testcases-link-display'] (cfg['testcases-create-link-display'])
--
-- If the test cases page doesn't exist, the link for cfg['testcases-create-link-display'] preloads the
-- page with cfg['template-testcases-preload'] or cfg['module-testcases-preload'], depending on the current
-- namespace.
--]]
cfg['experiment-blurb-template'] = "Editors can experiment in this template's $1 and $2 pages."
cfg['experiment-blurb-module'] = "Editors can experiment in this module's $1 and $2 pages."
----------------------------------------------------------------------------------------------------
-- Sandbox link configuration
----------------------------------------------------------------------------------------------------
-- cfg['sandbox-subpage']
-- The name of the template subpage typically used for sandboxes.
cfg['sandbox-subpage'] = 'sandbox'
-- cfg['template-sandbox-preload']
-- Preload file for template sandbox pages.
cfg['template-sandbox-preload'] = 'Template:Documentation/preload-sandbox'
-- cfg['module-sandbox-preload']
-- Preload file for Lua module sandbox pages.
cfg['module-sandbox-preload'] = 'Template:Documentation/preload-module-sandbox'
-- cfg['sandbox-link-display']
-- The text to display for "sandbox" links.
cfg['sandbox-link-display'] = 'sandbox'
-- cfg['sandbox-edit-link-display']
-- The text to display for sandbox "edit" links.
cfg['sandbox-edit-link-display'] = 'edit'
-- cfg['sandbox-create-link-display']
-- The text to display for sandbox "create" links.
cfg['sandbox-create-link-display'] = 'create'
-- cfg['compare-link-display']
-- The text to display for "compare" links.
cfg['compare-link-display'] = 'diff'
-- cfg['mirror-edit-summary']
-- The default edit summary to use when a user clicks the "mirror" link. $1 is a wikilink to the
-- template page.
cfg['mirror-edit-summary'] = 'Create sandbox version of $1'
-- cfg['mirror-link-display']
-- The text to display for "mirror" links.
cfg['mirror-link-display'] = 'mirror'
-- cfg['mirror-link-preload']
-- The page to preload when a user clicks the "mirror" link.
cfg['mirror-link-preload'] = 'Template:Documentation/mirror'
----------------------------------------------------------------------------------------------------
-- Test cases link configuration
----------------------------------------------------------------------------------------------------
-- cfg['testcases-subpage']
-- The name of the template subpage typically used for test cases.
cfg['testcases-subpage'] = 'testcases'
-- cfg['template-testcases-preload']
-- Preload file for template test cases pages.
cfg['template-testcases-preload'] = 'Template:Documentation/preload-testcases'
-- cfg['module-testcases-preload']
-- Preload file for Lua module test cases pages.
cfg['module-testcases-preload'] = 'Template:Documentation/preload-module-testcases'
-- cfg['testcases-link-display']
-- The text to display for "testcases" links.
cfg['testcases-link-display'] = 'testcases'
-- cfg['testcases-edit-link-display']
-- The text to display for test cases "edit" links.
cfg['testcases-edit-link-display'] = 'edit'
-- cfg['testcases-run-link-display']
-- The text to display for test cases "run" links.
cfg['testcases-run-link-display'] = 'run'
-- cfg['testcases-create-link-display']
-- The text to display for test cases "create" links.
cfg['testcases-create-link-display'] = 'create'
----------------------------------------------------------------------------------------------------
-- Add categories blurb configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['add-categories-blurb']
-- Text to direct users to add categories to the /doc subpage. Not used if the "content" or
-- "docname fed" arguments are set, as then it is not clear where to add the categories. $1 is a
-- link to the /doc subpage with a display value of cfg['doc-link-display'].
--]]
cfg['add-categories-blurb'] = 'Add categories to the $1 subpage.'
-- cfg['doc-link-display']
-- The text to display when linking to the /doc subpage.
cfg['doc-link-display'] = '/doc'
----------------------------------------------------------------------------------------------------
-- Subpages link configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['subpages-blurb']
-- The "Subpages of this template" blurb. $1 is a link to the main template's subpages with a
-- display value of cfg['subpages-link-display']. In the English version this blurb is simply
-- the link followed by a period, and the link display provides the actual text.
--]]
cfg['subpages-blurb'] = '$1.'
--[[
-- cfg['subpages-link-display']
-- The text to display for the "subpages of this page" link. $1 is cfg['template-pagetype'],
-- cfg['module-pagetype'] or cfg['default-pagetype'], depending on whether the current page is in
-- the template namespace, the module namespace, or another namespace.
--]]
cfg['subpages-link-display'] = 'Subpages of this $1'
-- cfg['template-pagetype']
-- The pagetype to display for template pages.
cfg['template-pagetype'] = 'template'
-- cfg['module-pagetype']
-- The pagetype to display for Lua module pages.
cfg['module-pagetype'] = 'module'
-- cfg['default-pagetype']
-- The pagetype to display for pages other than templates or Lua modules.
cfg['default-pagetype'] = 'page'
----------------------------------------------------------------------------------------------------
-- Doc link configuration
----------------------------------------------------------------------------------------------------
-- cfg['doc-subpage']
-- The name of the subpage typically used for documentation pages.
cfg['doc-subpage'] = 'doc'
-- cfg['docpage-preload']
-- Preload file for template documentation pages in all namespaces.
cfg['docpage-preload'] = 'Template:Documentation/preload'
-- cfg['module-preload']
-- Preload file for Lua module documentation pages.
cfg['module-preload'] = 'Template:Documentation/preload-module-doc'
----------------------------------------------------------------------------------------------------
-- HTML and CSS configuration
----------------------------------------------------------------------------------------------------
-- cfg['templatestyles']
-- The name of the TemplateStyles page where CSS is kept.
-- Sandbox CSS will be at Module:Documentation/sandbox/styles.css when needed.
cfg['templatestyles'] = 'Module:Documentation/styles.css'
-- cfg['container']
-- Class which can be used to set flex or grid CSS on the
-- two child divs documentation and documentation-metadata
cfg['container'] = 'documentation-container'
-- cfg['main-div-classes']
-- Classes added to the main HTML "div" tag.
cfg['main-div-classes'] = 'documentation'
-- cfg['main-div-heading-class']
-- Class for the main heading for templates and modules and assoc. talk spaces
cfg['main-div-heading-class'] = 'documentation-heading'
-- cfg['start-box-class']
-- Class for the start box
cfg['start-box-class'] = 'documentation-startbox'
-- cfg['start-box-link-classes']
-- Classes used for the [view][edit][history] or [create] links in the start box.
-- mw-editsection-like is per [[Wikipedia:Village pump (technical)/Archive 117]]
cfg['start-box-link-classes'] = 'mw-editsection-like plainlinks'
-- cfg['end-box-class']
-- Class for the end box.
cfg['end-box-class'] = 'documentation-metadata'
-- cfg['end-box-plainlinks']
-- Plainlinks
cfg['end-box-plainlinks'] = 'plainlinks'
-- cfg['toolbar-class']
-- Class added for toolbar links.
cfg['toolbar-class'] = 'documentation-toolbar'
-- cfg['clear']
-- Just used to clear things.
cfg['clear'] = 'documentation-clear'
----------------------------------------------------------------------------------------------------
-- Tracking category configuration
----------------------------------------------------------------------------------------------------
-- cfg['display-strange-usage-category']
-- Set to true to enable output of cfg['strange-usage-category'] if the module is used on a /doc subpage
-- or a /testcases subpage. This should be a boolean value (either true or false).
cfg['display-strange-usage-category'] = true
-- cfg['strange-usage-category']
-- Category to output if cfg['display-strange-usage-category'] is set to true and the module is used on a
-- /doc subpage or a /testcases subpage.
cfg['strange-usage-category'] = 'Wikipedia pages with strange ((documentation)) usage'
--[[
----------------------------------------------------------------------------------------------------
-- End configuration
--
-- Don't edit anything below this line.
----------------------------------------------------------------------------------------------------
--]]
return cfg
71b68ed73088f1a59d61acf06bbee9fde6677f03
Module:Documentation/styles.css
828
64
120
119
2022-07-21T19:50:52Z
Wikiricky
1
1 revision imported
sanitized-css
text/css
/* {{pp|small=yes}} */
.documentation,
.documentation-metadata {
border: 1px solid #a2a9b1;
background-color: #ecfcf4;
clear: both;
}
.documentation {
margin: 1em 0 0 0;
padding: 1em;
}
.documentation-metadata {
margin: 0.2em 0; /* same margin left-right as .documentation */
font-style: italic;
padding: 0.4em 1em; /* same padding left-right as .documentation */
}
.documentation-startbox {
padding-bottom: 3px;
border-bottom: 1px solid #aaa;
margin-bottom: 1ex;
}
.documentation-heading {
font-weight: bold;
font-size: 125%;
}
.documentation-clear { /* Don't want things to stick out where they shouldn't. */
clear: both;
}
.documentation-toolbar {
font-style: normal;
font-size: 85%;
}
ce0e629c92e3d825ab9fd927fe6cc37d9117b6cb
Module:Effective protection expiry
828
65
122
121
2022-07-21T19:50:52Z
Wikiricky
1
1 revision imported
Scribunto
text/plain
local p = {}
-- Returns the expiry of a restriction of an action on a given title, or unknown if it cannot be known.
-- If no title is specified, the title of the page being displayed is used.
function p._main(action, pagename)
local title
if type(pagename) == 'table' and pagename.prefixedText then
title = pagename
elseif pagename then
title = mw.title.new(pagename)
else
title = mw.title.getCurrentTitle()
end
pagename = title.prefixedText
if action == 'autoreview' then
local stabilitySettings = mw.ext.FlaggedRevs.getStabilitySettings(title)
return stabilitySettings and stabilitySettings.expiry or 'unknown'
elseif action ~= 'edit' and action ~= 'move' and action ~= 'create' and action ~= 'upload' then
error( 'First parameter must be one of edit, move, create, upload, autoreview', 2 )
end
local rawExpiry = mw.getCurrentFrame():callParserFunction('PROTECTIONEXPIRY', action, pagename)
if rawExpiry == 'infinity' then
return 'infinity'
elseif rawExpiry == '' then
return 'unknown'
else
local year, month, day, hour, minute, second = rawExpiry:match(
'^(%d%d%d%d)(%d%d)(%d%d)(%d%d)(%d%d)(%d%d)$'
)
if year then
return string.format(
'%s-%s-%sT%s:%s:%s',
year, month, day, hour, minute, second
)
else
error('internal error in Module:Effective protection expiry; malformed expiry timestamp')
end
end
end
setmetatable(p, { __index = function(t, k)
return function(frame)
return t._main(k, frame.args[1])
end
end })
return p
9a8c58dc2667232ed08a9b206a5d89ca8150312b
Module:Effective protection level
828
66
124
123
2022-07-21T19:50:53Z
Wikiricky
1
1 revision imported
Scribunto
text/plain
local p = {}
-- Returns the permission required to perform a given action on a given title.
-- If no title is specified, the title of the page being displayed is used.
function p._main(action, pagename)
local title
if type(pagename) == 'table' and pagename.prefixedText then
title = pagename
elseif pagename then
title = mw.title.new(pagename)
else
title = mw.title.getCurrentTitle()
end
pagename = title.prefixedText
if action == 'autoreview' then
local level = mw.ext.FlaggedRevs.getStabilitySettings(title)
level = level and level.autoreview
if level == 'review' then
return 'reviewer'
elseif level ~= '' then
return level
else
return nil -- not '*'. a page not being PC-protected is distinct from it being PC-protected with anyone able to review. also not '', as that would mean PC-protected but nobody can review
end
elseif action ~= 'edit' and action ~= 'move' and action ~= 'create' and action ~= 'upload' and action ~= 'undelete' then
error( 'First parameter must be one of edit, move, create, upload, undelete, autoreview', 2 )
end
if title.namespace == 8 then -- MediaWiki namespace
if title.text:sub(-3) == '.js' or title.text:sub(-4) == '.css' or title.contentModel == 'javascript' or title.contentModel == 'css' then -- site JS or CSS page
return 'interfaceadmin'
else -- any non-JS/CSS MediaWiki page
return 'sysop'
end
elseif title.namespace == 2 and title.isSubpage then
if title.contentModel == 'javascript' or title.contentModel == 'css' then -- user JS or CSS page
return 'interfaceadmin'
elseif title.contentModel == 'json' then -- user JSON page
return 'sysop'
end
end
if action == 'undelete' then
return 'sysop'
end
local level = title.protectionLevels[action] and title.protectionLevels[action][1]
if level == 'sysop' or level == 'editprotected' then
return 'sysop'
elseif title.cascadingProtection.restrictions[action] and title.cascadingProtection.restrictions[action][1] then -- used by a cascading-protected page
return 'sysop'
elseif level == 'templateeditor' then
return 'templateeditor'
elseif action == 'move' then
local blacklistentry = mw.ext.TitleBlacklist.test('edit', pagename) -- Testing action edit is correct, since this is for the source page. The target page name gets tested with action move.
if blacklistentry and not blacklistentry.params.autoconfirmed then
return 'templateeditor'
elseif title.namespace == 6 then
return 'filemover'
elseif level == 'extendedconfirmed' then
return 'extendedconfirmed'
else
return 'autoconfirmed'
end
end
local blacklistentry = mw.ext.TitleBlacklist.test(action, pagename)
if blacklistentry then
if not blacklistentry.params.autoconfirmed then
return 'templateeditor'
elseif level == 'extendedconfirmed' then
return 'extendedconfirmed'
else
return 'autoconfirmed'
end
elseif level == 'editsemiprotected' then -- create-semiprotected pages return this for some reason
return 'autoconfirmed'
elseif level then
return level
elseif action == 'upload' then
return 'autoconfirmed'
elseif action == 'create' and title.namespace % 2 == 0 and title.namespace ~= 118 then -- You need to be registered, but not autoconfirmed, to create non-talk pages other than drafts
return 'user'
else
return '*'
end
end
setmetatable(p, { __index = function(t, k)
return function(frame)
return t._main(k, frame.args[1])
end
end })
return p
70256a489edf6be9808031b14a7e3ef3e025da97
Module:File link
828
67
126
125
2022-07-21T19:50:53Z
Wikiricky
1
1 revision imported
Scribunto
text/plain
-- This module provides a library for formatting file wikilinks.
local yesno = require('Module:Yesno')
local checkType = require('libraryUtil').checkType
local p = {}
function p._main(args)
checkType('_main', 1, args, 'table')
-- This is basically libraryUtil.checkTypeForNamedArg, but we are rolling our
-- own function to get the right error level.
local function checkArg(key, val, level)
if type(val) ~= 'string' then
error(string.format(
"type error in '%s' parameter of '_main' (expected string, got %s)",
key, type(val)
), level)
end
end
local ret = {}
-- Adds a positional parameter to the buffer.
local function addPositional(key)
local val = args[key]
if not val then
return nil
end
checkArg(key, val, 4)
ret[#ret + 1] = val
end
-- Adds a named parameter to the buffer. We assume that the parameter name
-- is the same as the argument key.
local function addNamed(key)
local val = args[key]
if not val then
return nil
end
checkArg(key, val, 4)
ret[#ret + 1] = key .. '=' .. val
end
-- Filename
checkArg('file', args.file, 3)
ret[#ret + 1] = 'File:' .. args.file
-- Format
if args.format then
checkArg('format', args.format)
if args.formatfile then
checkArg('formatfile', args.formatfile)
ret[#ret + 1] = args.format .. '=' .. args.formatfile
else
ret[#ret + 1] = args.format
end
end
-- Border
if yesno(args.border) then
ret[#ret + 1] = 'border'
end
addPositional('location')
addPositional('alignment')
addPositional('size')
addNamed('upright')
addNamed('link')
addNamed('alt')
addNamed('page')
addNamed('class')
addNamed('lang')
addNamed('start')
addNamed('end')
addNamed('thumbtime')
addPositional('caption')
return string.format('[[%s]]', table.concat(ret, '|'))
end
function p.main(frame)
local origArgs = require('Module:Arguments').getArgs(frame, {
wrappers = 'Template:File link'
})
if not origArgs.file then
error("'file' parameter missing from [[Template:File link]]", 0)
end
-- Copy the arguments that were passed to a new table to avoid looking up
-- every possible parameter in the frame object.
local args = {}
for k, v in pairs(origArgs) do
-- Make _BLANK a special argument to add a blank parameter. For use in
-- conditional templates etc. it is useful for blank arguments to be
-- ignored, but we still need a way to specify them so that we can do
-- things like [[File:Example.png|link=]].
if v == '_BLANK' then
v = ''
end
args[k] = v
end
return p._main(args)
end
return p
66925f088d11530f2482f04181a3baaaa0ad3d0c
Module:High-use
828
68
128
127
2022-07-21T19:50:53Z
Wikiricky
1
1 revision imported
Scribunto
text/plain
local p = {}
-- _fetch looks at the "demo" argument.
local _fetch = require('Module:Transclusion_count').fetch
local yesno = require('Module:Yesno')
function p.num(frame, count)
if count == nil then
if yesno(frame.args['fetch']) == false then
if (frame.args[1] or '') ~= '' then count = tonumber(frame.args[1]) end
else
count = _fetch(frame)
end
end
-- Build output string
local return_value = ""
if count == nil then
if frame.args[1] == "risk" then
return_value = "a very large number of"
else
return_value = "many"
end
else
-- Use 2 significant figures for smaller numbers and 3 for larger ones
local sigfig = 2
if count >= 100000 then
sigfig = 3
end
-- Prepare to round to appropriate number of sigfigs
local f = math.floor(math.log10(count)) - sigfig + 1
-- Round and insert "approximately" or "+" when appropriate
if (frame.args[2] == "yes") or (mw.ustring.sub(frame.args[1],-1) == "+") then
-- Round down
return_value = string.format("%s+", mw.getContentLanguage():formatNum(math.floor( (count / 10^(f)) ) * (10^(f))) )
else
-- Round to nearest
return_value = string.format("approximately %s", mw.getContentLanguage():formatNum(math.floor( (count / 10^(f)) + 0.5) * (10^(f))) )
end
-- Insert percentage of pages if that is likely to be >= 1% and when |no-percent= not set to yes
if count and count > 250000 and not yesno (frame:getParent().args['no-percent']) then
local percent = math.floor( ( (count/frame:callParserFunction('NUMBEROFPAGES', 'R') ) * 100) + 0.5)
if percent >= 1 then
return_value = string.format("%s pages, or roughly %s%% of all", return_value, percent)
end
end
end
return return_value
end
-- Actions if there is a large (greater than or equal to 100,000) transclusion count
function p.risk(frame)
local return_value = ""
if frame.args[1] == "risk" then
return_value = "risk"
else
local count = _fetch(frame)
if count and count >= 100000 then return_value = "risk" end
end
return return_value
end
function p.text(frame, count)
-- Only show the information about how this template gets updated if someone
-- is actually editing the page and maybe trying to update the count.
local bot_text = (frame:preprocess("{{REVISIONID}}") == "") and "\n\n----\n'''Preview message''': Transclusion count updated automatically ([[Template:High-use/doc#Technical details|see documentation]])." or ''
if count == nil then
if yesno(frame.args['fetch']) == false then
if (frame.args[1] or '') ~= '' then count = tonumber(frame.args[1]) end
else
count = _fetch(frame)
end
end
local title = mw.title.getCurrentTitle()
if title.subpageText == "doc" or title.subpageText == "sandbox" then
title = title.basePageTitle
end
local systemMessages = frame.args['system']
if frame.args['system'] == '' then
systemMessages = nil
end
-- This retrieves the project URL automatically to simplify localiation.
local templateCount = ('on [https://linkcount.toolforge.org/index.php?project=%s&page=%s %s pages]'):format(
mw.title.getCurrentTitle():fullUrl():gsub('//(.-)/.*', '%1'),
mw.uri.encode(title.fullText), p.num(frame, count))
local used_on_text = "'''This " .. (mw.title.getCurrentTitle().namespace == 828 and "Lua module" or "template") .. ' is used ';
if systemMessages then
used_on_text = used_on_text .. systemMessages ..
((count and count > 2000) and ("''', and " .. templateCount) or ("'''"))
else
used_on_text = used_on_text .. templateCount .. "'''"
end
local sandbox_text = ("%s's [[%s/sandbox|/sandbox]] or [[%s/testcases|/testcases]] subpages, or in your own [[%s]]. "):format(
(mw.title.getCurrentTitle().namespace == 828 and "module" or "template"),
title.fullText, title.fullText,
mw.title.getCurrentTitle().namespace == 828 and "Module:Sandbox|module sandbox" or "Wikipedia:User pages#SUB|user subpage"
)
local infoArg = frame.args["info"] ~= "" and frame.args["info"]
if (systemMessages or frame.args[1] == "risk" or (count and count >= 100000) ) then
local info = systemMessages and '.<br/>Changes to it can cause immediate changes to the Wikipedia user interface.' or '.'
if infoArg then
info = info .. "<br />" .. infoArg
end
sandbox_text = info .. '<br /> To avoid major disruption' ..
(count and count >= 100000 and ' and server load' or '') ..
', any changes should be tested in the ' .. sandbox_text ..
'The tested changes can be added to this page in a single edit. '
else
sandbox_text = (infoArg and ('.<br />' .. infoArg .. ' C') or ' and c') ..
'hanges may be widely noticed. Test changes in the ' .. sandbox_text
end
local discussion_text = systemMessages and 'Please discuss changes ' or 'Consider discussing changes '
if frame.args["2"] and frame.args["2"] ~= "" and frame.args["2"] ~= "yes" then
discussion_text = string.format("%sat [[%s]]", discussion_text, frame.args["2"])
else
discussion_text = string.format("%son the [[%s|talk page]]", discussion_text, title.talkPageTitle.fullText )
end
return used_on_text .. sandbox_text .. discussion_text .. " before implementing them." .. bot_text
end
function p.main(frame)
local count = nil
if yesno(frame.args['fetch']) == false then
if (frame.args[1] or '') ~= '' then count = tonumber(frame.args[1]) end
else
count = _fetch(frame)
end
local image = "[[File:Ambox warning yellow.svg|40px|alt=Warning|link=]]"
local type_param = "style"
local epilogue = ''
if frame.args['system'] and frame.args['system'] ~= '' then
image = "[[File:Ambox important.svg|40px|alt=Warning|link=]]"
type_param = "content"
local nocat = frame:getParent().args['nocat'] or frame.args['nocat']
local categorise = (nocat == '' or not yesno(nocat))
if categorise then
epilogue = frame:preprocess('{{Sandbox other||{{#switch:{{#invoke:Effective protection level|{{#switch:{{NAMESPACE}}|File=upload|#default=edit}}|{{FULLPAGENAME}}}}|sysop|templateeditor|interfaceadmin=|#default=[[Category:Pages used in system messages needing protection]]}}}}')
end
elseif (frame.args[1] == "risk" or (count and count >= 100000)) then
image = "[[File:Ambox warning orange.svg|40px|alt=Warning|link=]]"
type_param = "content"
end
if frame.args["form"] == "editnotice" then
return frame:expandTemplate{
title = 'editnotice',
args = {
["image"] = image,
["text"] = p.text(frame, count),
["expiry"] = (frame.args["expiry"] or "")
}
} .. epilogue
else
return require('Module:Message box').main('ombox', {
type = type_param,
image = image,
text = p.text(frame, count),
expiry = (frame.args["expiry"] or "")
}) .. epilogue
end
end
return p
e65a49e327a83e27b6a35ceff8dce344edee0840
Module:If empty
828
69
130
129
2022-07-21T19:50:54Z
Wikiricky
1
1 revision imported
Scribunto
text/plain
local p = {}
function p.main(frame)
local args = require('Module:Arguments').getArgs(frame, {wrappers = 'Template:If empty', removeBlanks = false})
local lastk = 0
for k,v in ipairs(args) do
if v ~= '' then
return v
end
lastk = k
end
end
return p
4bfc0c7c8bf3b63144db1ea12f2260db00421233
Module:List
828
70
132
131
2022-07-21T19:50:54Z
Wikiricky
1
1 revision imported
Scribunto
text/plain
-- This module outputs different kinds of lists. At the moment, bulleted,
-- unbulleted, horizontal, ordered, and horizontal ordered lists are supported.
local libUtil = require('libraryUtil')
local checkType = libUtil.checkType
local mTableTools = require('Module:TableTools')
local p = {}
local listTypes = {
['bulleted'] = true,
['unbulleted'] = true,
['horizontal'] = true,
['ordered'] = true,
['horizontal_ordered'] = true
}
function p.makeListData(listType, args)
-- Constructs a data table to be passed to p.renderList.
local data = {}
-- Classes
data.classes = {}
if listType == 'horizontal' or listType == 'horizontal_ordered' then
table.insert(data.classes, 'hlist hlist-separated')
elseif listType == 'unbulleted' then
table.insert(data.classes, 'plainlist')
end
table.insert(data.classes, args.class)
-- Main div style
data.style = args.style
-- Indent for horizontal lists
if listType == 'horizontal' or listType == 'horizontal_ordered' then
local indent = tonumber(args.indent)
indent = indent and indent * 1.6 or 0
if indent > 0 then
data.marginLeft = indent .. 'em'
end
end
-- List style types for ordered lists
-- This could be "1, 2, 3", "a, b, c", or a number of others. The list style
-- type is either set by the "type" attribute or the "list-style-type" CSS
-- property.
if listType == 'ordered' or listType == 'horizontal_ordered' then
data.listStyleType = args.list_style_type or args['list-style-type']
data.type = args['type']
-- Detect invalid type attributes and attempt to convert them to
-- list-style-type CSS properties.
if data.type
and not data.listStyleType
and not tostring(data.type):find('^%s*[1AaIi]%s*$')
then
data.listStyleType = data.type
data.type = nil
end
end
-- List tag type
if listType == 'ordered' or listType == 'horizontal_ordered' then
data.listTag = 'ol'
else
data.listTag = 'ul'
end
-- Start number for ordered lists
data.start = args.start
if listType == 'horizontal_ordered' then
-- Apply fix to get start numbers working with horizontal ordered lists.
local startNum = tonumber(data.start)
if startNum then
data.counterReset = 'listitem ' .. tostring(startNum - 1)
end
end
-- List style
-- ul_style and ol_style are included for backwards compatibility. No
-- distinction is made for ordered or unordered lists.
data.listStyle = args.list_style
-- List items
-- li_style is included for backwards compatibility. item_style was included
-- to be easier to understand for non-coders.
data.itemStyle = args.item_style or args.li_style
data.items = {}
for i, num in ipairs(mTableTools.numKeys(args)) do
local item = {}
item.content = args[num]
item.style = args['item' .. tostring(num) .. '_style']
or args['item_style' .. tostring(num)]
item.value = args['item' .. tostring(num) .. '_value']
or args['item_value' .. tostring(num)]
table.insert(data.items, item)
end
return data
end
function p.renderList(data)
-- Renders the list HTML.
-- Return the blank string if there are no list items.
if type(data.items) ~= 'table' or #data.items < 1 then
return ''
end
-- Render the main div tag.
local root = mw.html.create('div')
for i, class in ipairs(data.classes or {}) do
root:addClass(class)
end
root:css{['margin-left'] = data.marginLeft}
if data.style then
root:cssText(data.style)
end
-- Render the list tag.
local list = root:tag(data.listTag or 'ul')
list
:attr{start = data.start, type = data.type}
:css{
['counter-reset'] = data.counterReset,
['list-style-type'] = data.listStyleType
}
if data.listStyle then
list:cssText(data.listStyle)
end
-- Render the list items
for i, t in ipairs(data.items or {}) do
local item = list:tag('li')
if data.itemStyle then
item:cssText(data.itemStyle)
end
if t.style then
item:cssText(t.style)
end
item
:attr{value = t.value}
:wikitext(t.content)
end
return tostring(root)
end
function p.renderTrackingCategories(args)
local isDeprecated = false -- Tracks deprecated parameters.
for k, v in pairs(args) do
k = tostring(k)
if k:find('^item_style%d+$') or k:find('^item_value%d+$') then
isDeprecated = true
break
end
end
local ret = ''
if isDeprecated then
ret = ret .. '[[Category:List templates with deprecated parameters]]'
end
return ret
end
function p.makeList(listType, args)
if not listType or not listTypes[listType] then
error(string.format(
"bad argument #1 to 'makeList' ('%s' is not a valid list type)",
tostring(listType)
), 2)
end
checkType('makeList', 2, args, 'table')
local data = p.makeListData(listType, args)
local list = p.renderList(data)
local trackingCategories = p.renderTrackingCategories(args)
return list .. trackingCategories
end
for listType in pairs(listTypes) do
p[listType] = function (frame)
local mArguments = require('Module:Arguments')
local origArgs = mArguments.getArgs(frame, {
valueFunc = function (key, value)
if not value or not mw.ustring.find(value, '%S') then return nil end
if mw.ustring.find(value, '^%s*[%*#;:]') then
return value
else
return value:match('^%s*(.-)%s*$')
end
return nil
end
})
-- Copy all the arguments to a new table, for faster indexing.
local args = {}
for k, v in pairs(origArgs) do
args[k] = v
end
return p.makeList(listType, args)
end
end
return p
0d6c114450d0f5b3c1d2171ebeb41ae74f203f88
Module:Lua banner
828
71
134
133
2022-07-21T19:50:55Z
Wikiricky
1
1 revision imported
Scribunto
text/plain
-- This module implements the {{lua}} template.
local yesno = require('Module:Yesno')
local mList = require('Module:List')
local mTableTools = require('Module:TableTools')
local mMessageBox = require('Module:Message box')
local p = {}
function p.main(frame)
local origArgs = frame:getParent().args
local args = {}
for k, v in pairs(origArgs) do
v = v:match('^%s*(.-)%s*$')
if v ~= '' then
args[k] = v
end
end
return p._main(args)
end
function p._main(args)
local modules = mTableTools.compressSparseArray(args)
local box = p.renderBox(modules)
local trackingCategories = p.renderTrackingCategories(args, modules)
return box .. trackingCategories
end
function p.renderBox(modules)
local boxArgs = {}
if #modules < 1 then
boxArgs.text = '<strong class="error">Error: no modules specified</strong>'
else
local moduleLinks = {}
for i, module in ipairs(modules) do
moduleLinks[i] = string.format('[[:%s]]', module)
local maybeSandbox = mw.title.new(module .. '/sandbox')
if maybeSandbox.exists then
moduleLinks[i] = moduleLinks[i] .. string.format(' ([[:%s|sandbox]])', maybeSandbox.fullText)
end
end
local moduleList = mList.makeList('bulleted', moduleLinks)
local title = mw.title.getCurrentTitle()
if title.subpageText == "doc" then
title = title.basePageTitle
end
if title.contentModel == "Scribunto" then
boxArgs.text = 'This module depends on the following other modules:' .. moduleList
else
boxArgs.text = 'This template uses [[Wikipedia:Lua|Lua]]:\n' .. moduleList
end
end
boxArgs.type = 'notice'
boxArgs.small = true
boxArgs.image = '[[File:Lua-Logo.svg|30px|alt=|link=]]'
return mMessageBox.main('mbox', boxArgs)
end
function p.renderTrackingCategories(args, modules, titleObj)
if yesno(args.nocat) then
return ''
end
local cats = {}
-- Error category
if #modules < 1 then
cats[#cats + 1] = 'Lua templates with errors'
end
-- Lua templates category
titleObj = titleObj or mw.title.getCurrentTitle()
local subpageBlacklist = {
doc = true,
sandbox = true,
sandbox2 = true,
testcases = true
}
if not subpageBlacklist[titleObj.subpageText] then
local protCatName
if titleObj.namespace == 10 then
local category = args.category
if not category then
local categories = {
['Module:String'] = 'Templates based on the String Lua module',
['Module:Math'] = 'Templates based on the Math Lua module',
['Module:BaseConvert'] = 'Templates based on the BaseConvert Lua module',
['Module:Citation'] = 'Templates based on the Citation/CS1 Lua module'
}
categories['Module:Citation/CS1'] = categories['Module:Citation']
category = modules[1] and categories[modules[1]]
category = category or 'Lua-based templates'
end
cats[#cats + 1] = category
protCatName = "Templates using under-protected Lua modules"
elseif titleObj.namespace == 828 then
protCatName = "Modules depending on under-protected modules"
end
if not args.noprotcat and protCatName then
local protLevels = {
autoconfirmed = 1,
extendedconfirmed = 2,
templateeditor = 3,
sysop = 4
}
local currentProt
if titleObj.id ~= 0 then
-- id is 0 (page does not exist) if am previewing before creating a template.
currentProt = titleObj.protectionLevels["edit"][1]
end
if currentProt == nil then currentProt = 0 else currentProt = protLevels[currentProt] end
for i, module in ipairs(modules) do
if module ~= "WP:libraryUtil" then
local moduleProt = mw.title.new(module).protectionLevels["edit"][1]
if moduleProt == nil then moduleProt = 0 else moduleProt = protLevels[moduleProt] end
if moduleProt < currentProt then
cats[#cats + 1] = protCatName
break
end
end
end
end
end
for i, cat in ipairs(cats) do
cats[i] = string.format('[[Category:%s]]', cat)
end
return table.concat(cats)
end
return p
6e3bedcc849ff22d4f702708965c39b97d7e8585
Module:Message box
828
72
136
135
2022-07-21T19:50:55Z
Wikiricky
1
1 revision imported
Scribunto
text/plain
require('Module:No globals')
local getArgs
local yesno = require('Module:Yesno')
local lang = mw.language.getContentLanguage()
local CONFIG_MODULE = 'Module:Message box/configuration'
local DEMOSPACES = {talk = 'tmbox', image = 'imbox', file = 'imbox', category = 'cmbox', article = 'ambox', main = 'ambox'}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function getTitleObject(...)
-- Get the title object, passing the function through pcall
-- in case we are over the expensive function count limit.
local success, title = pcall(mw.title.new, ...)
if success then
return title
end
end
local function union(t1, t2)
-- Returns the union of two arrays.
local vals = {}
for i, v in ipairs(t1) do
vals[v] = true
end
for i, v in ipairs(t2) do
vals[v] = true
end
local ret = {}
for k in pairs(vals) do
table.insert(ret, k)
end
table.sort(ret)
return ret
end
local function getArgNums(args, prefix)
local nums = {}
for k, v in pairs(args) do
local num = mw.ustring.match(tostring(k), '^' .. prefix .. '([1-9]%d*)$')
if num then
table.insert(nums, tonumber(num))
end
end
table.sort(nums)
return nums
end
--------------------------------------------------------------------------------
-- Box class definition
--------------------------------------------------------------------------------
local MessageBox = {}
MessageBox.__index = MessageBox
function MessageBox.new(boxType, args, cfg)
args = args or {}
local obj = {}
-- Set the title object and the namespace.
obj.title = getTitleObject(args.page) or mw.title.getCurrentTitle()
-- Set the config for our box type.
obj.cfg = cfg[boxType]
if not obj.cfg then
local ns = obj.title.namespace
-- boxType is "mbox" or invalid input
if args.demospace and args.demospace ~= '' then
-- implement demospace parameter of mbox
local demospace = string.lower(args.demospace)
if DEMOSPACES[demospace] then
-- use template from DEMOSPACES
obj.cfg = cfg[DEMOSPACES[demospace]]
elseif string.find( demospace, 'talk' ) then
-- demo as a talk page
obj.cfg = cfg.tmbox
else
-- default to ombox
obj.cfg = cfg.ombox
end
elseif ns == 0 then
obj.cfg = cfg.ambox -- main namespace
elseif ns == 6 then
obj.cfg = cfg.imbox -- file namespace
elseif ns == 14 then
obj.cfg = cfg.cmbox -- category namespace
else
local nsTable = mw.site.namespaces[ns]
if nsTable and nsTable.isTalk then
obj.cfg = cfg.tmbox -- any talk namespace
else
obj.cfg = cfg.ombox -- other namespaces or invalid input
end
end
end
-- Set the arguments, and remove all blank arguments except for the ones
-- listed in cfg.allowBlankParams.
do
local newArgs = {}
for k, v in pairs(args) do
if v ~= '' then
newArgs[k] = v
end
end
for i, param in ipairs(obj.cfg.allowBlankParams or {}) do
newArgs[param] = args[param]
end
obj.args = newArgs
end
-- Define internal data structure.
obj.categories = {}
obj.classes = {}
-- For lazy loading of [[Module:Category handler]].
obj.hasCategories = false
return setmetatable(obj, MessageBox)
end
function MessageBox:addCat(ns, cat, sort)
if not cat then
return nil
end
if sort then
cat = string.format('[[Category:%s|%s]]', cat, sort)
else
cat = string.format('[[Category:%s]]', cat)
end
self.hasCategories = true
self.categories[ns] = self.categories[ns] or {}
table.insert(self.categories[ns], cat)
end
function MessageBox:addClass(class)
if not class then
return nil
end
table.insert(self.classes, class)
end
function MessageBox:setParameters()
local args = self.args
local cfg = self.cfg
-- Get type data.
self.type = args.type
local typeData = cfg.types[self.type]
self.invalidTypeError = cfg.showInvalidTypeError
and self.type
and not typeData
typeData = typeData or cfg.types[cfg.default]
self.typeClass = typeData.class
self.typeImage = typeData.image
-- Find if the box has been wrongly substituted.
self.isSubstituted = cfg.substCheck and args.subst == 'SUBST'
-- Find whether we are using a small message box.
self.isSmall = cfg.allowSmall and (
cfg.smallParam and args.small == cfg.smallParam
or not cfg.smallParam and yesno(args.small)
)
-- Add attributes, classes and styles.
self.id = args.id
self.name = args.name
if self.name then
self:addClass('box-' .. string.gsub(self.name,' ','_'))
end
if yesno(args.plainlinks) ~= false then
self:addClass('plainlinks')
end
for _, class in ipairs(cfg.classes or {}) do
self:addClass(class)
end
if self.isSmall then
self:addClass(cfg.smallClass or 'mbox-small')
end
self:addClass(self.typeClass)
self:addClass(args.class)
self.style = args.style
self.attrs = args.attrs
-- Set text style.
self.textstyle = args.textstyle
-- Find if we are on the template page or not. This functionality is only
-- used if useCollapsibleTextFields is set, or if both cfg.templateCategory
-- and cfg.templateCategoryRequireName are set.
self.useCollapsibleTextFields = cfg.useCollapsibleTextFields
if self.useCollapsibleTextFields
or cfg.templateCategory
and cfg.templateCategoryRequireName
then
if self.name then
local templateName = mw.ustring.match(
self.name,
'^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$'
) or self.name
templateName = 'Template:' .. templateName
self.templateTitle = getTitleObject(templateName)
end
self.isTemplatePage = self.templateTitle
and mw.title.equals(self.title, self.templateTitle)
end
-- Process data for collapsible text fields. At the moment these are only
-- used in {{ambox}}.
if self.useCollapsibleTextFields then
-- Get the self.issue value.
if self.isSmall and args.smalltext then
self.issue = args.smalltext
else
local sect
if args.sect == '' then
sect = 'This ' .. (cfg.sectionDefault or 'page')
elseif type(args.sect) == 'string' then
sect = 'This ' .. args.sect
end
local issue = args.issue
issue = type(issue) == 'string' and issue ~= '' and issue or nil
local text = args.text
text = type(text) == 'string' and text or nil
local issues = {}
table.insert(issues, sect)
table.insert(issues, issue)
table.insert(issues, text)
self.issue = table.concat(issues, ' ')
end
-- Get the self.talk value.
local talk = args.talk
-- Show talk links on the template page or template subpages if the talk
-- parameter is blank.
if talk == ''
and self.templateTitle
and (
mw.title.equals(self.templateTitle, self.title)
or self.title:isSubpageOf(self.templateTitle)
)
then
talk = '#'
elseif talk == '' then
talk = nil
end
if talk then
-- If the talk value is a talk page, make a link to that page. Else
-- assume that it's a section heading, and make a link to the talk
-- page of the current page with that section heading.
local talkTitle = getTitleObject(talk)
local talkArgIsTalkPage = true
if not talkTitle or not talkTitle.isTalkPage then
talkArgIsTalkPage = false
talkTitle = getTitleObject(
self.title.text,
mw.site.namespaces[self.title.namespace].talk.id
)
end
if talkTitle and talkTitle.exists then
local talkText
if self.isSmall then
local talkLink = talkArgIsTalkPage and talk or (talkTitle.prefixedText .. '#' .. talk)
talkText = string.format('([[%s|talk]])', talkLink)
else
talkText = 'Relevant discussion may be found on'
if talkArgIsTalkPage then
talkText = string.format(
'%s [[%s|%s]].',
talkText,
talk,
talkTitle.prefixedText
)
else
talkText = string.format(
'%s the [[%s#%s|talk page]].',
talkText,
talkTitle.prefixedText,
talk
)
end
end
self.talk = talkText
end
end
-- Get other values.
self.fix = args.fix ~= '' and args.fix or nil
local date
if args.date and args.date ~= '' then
date = args.date
elseif args.date == '' and self.isTemplatePage then
date = lang:formatDate('F Y')
end
if date then
self.date = string.format(" <span class='date-container'><i>(<span class='date'>%s</span>)</i></span>", date)
end
self.info = args.info
if yesno(args.removalnotice) then
self.removalNotice = cfg.removalNotice
end
end
-- Set the non-collapsible text field. At the moment this is used by all box
-- types other than ambox, and also by ambox when small=yes.
if self.isSmall then
self.text = args.smalltext or args.text
else
self.text = args.text
end
-- Set the below row.
self.below = cfg.below and args.below
-- General image settings.
self.imageCellDiv = not self.isSmall and cfg.imageCellDiv
self.imageEmptyCell = cfg.imageEmptyCell
-- Left image settings.
local imageLeft = self.isSmall and args.smallimage or args.image
if cfg.imageCheckBlank and imageLeft ~= 'blank' and imageLeft ~= 'none'
or not cfg.imageCheckBlank and imageLeft ~= 'none'
then
self.imageLeft = imageLeft
if not imageLeft then
local imageSize = self.isSmall
and (cfg.imageSmallSize or '30x30px')
or '40x40px'
self.imageLeft = string.format('[[File:%s|%s|link=|alt=]]', self.typeImage
or 'Imbox notice.png', imageSize)
end
end
-- Right image settings.
local imageRight = self.isSmall and args.smallimageright or args.imageright
if not (cfg.imageRightNone and imageRight == 'none') then
self.imageRight = imageRight
end
-- set templatestyles
self.base_templatestyles = cfg.templatestyles
self.templatestyles = args.templatestyles
end
function MessageBox:setMainspaceCategories()
local args = self.args
local cfg = self.cfg
if not cfg.allowMainspaceCategories then
return nil
end
local nums = {}
for _, prefix in ipairs{'cat', 'category', 'all'} do
args[prefix .. '1'] = args[prefix]
nums = union(nums, getArgNums(args, prefix))
end
-- The following is roughly equivalent to the old {{Ambox/category}}.
local date = args.date
date = type(date) == 'string' and date
local preposition = 'from'
for _, num in ipairs(nums) do
local mainCat = args['cat' .. tostring(num)]
or args['category' .. tostring(num)]
local allCat = args['all' .. tostring(num)]
mainCat = type(mainCat) == 'string' and mainCat
allCat = type(allCat) == 'string' and allCat
if mainCat and date and date ~= '' then
local catTitle = string.format('%s %s %s', mainCat, preposition, date)
self:addCat(0, catTitle)
catTitle = getTitleObject('Category:' .. catTitle)
if not catTitle or not catTitle.exists then
self:addCat(0, 'Articles with invalid date parameter in template')
end
elseif mainCat and (not date or date == '') then
self:addCat(0, mainCat)
end
if allCat then
self:addCat(0, allCat)
end
end
end
function MessageBox:setTemplateCategories()
local args = self.args
local cfg = self.cfg
-- Add template categories.
if cfg.templateCategory then
if cfg.templateCategoryRequireName then
if self.isTemplatePage then
self:addCat(10, cfg.templateCategory)
end
elseif not self.title.isSubpage then
self:addCat(10, cfg.templateCategory)
end
end
-- Add template error categories.
if cfg.templateErrorCategory then
local templateErrorCategory = cfg.templateErrorCategory
local templateCat, templateSort
if not self.name and not self.title.isSubpage then
templateCat = templateErrorCategory
elseif self.isTemplatePage then
local paramsToCheck = cfg.templateErrorParamsToCheck or {}
local count = 0
for i, param in ipairs(paramsToCheck) do
if not args[param] then
count = count + 1
end
end
if count > 0 then
templateCat = templateErrorCategory
templateSort = tostring(count)
end
if self.categoryNums and #self.categoryNums > 0 then
templateCat = templateErrorCategory
templateSort = 'C'
end
end
self:addCat(10, templateCat, templateSort)
end
end
function MessageBox:setAllNamespaceCategories()
-- Set categories for all namespaces.
if self.invalidTypeError then
local allSort = (self.title.namespace == 0 and 'Main:' or '') .. self.title.prefixedText
self:addCat('all', 'Wikipedia message box parameter needs fixing', allSort)
end
if self.isSubstituted then
self:addCat('all', 'Pages with incorrectly substituted templates')
end
end
function MessageBox:setCategories()
if self.title.namespace == 0 then
self:setMainspaceCategories()
elseif self.title.namespace == 10 then
self:setTemplateCategories()
end
self:setAllNamespaceCategories()
end
function MessageBox:renderCategories()
if not self.hasCategories then
-- No categories added, no need to pass them to Category handler so,
-- if it was invoked, it would return the empty string.
-- So we shortcut and return the empty string.
return ""
end
-- Convert category tables to strings and pass them through
-- [[Module:Category handler]].
return require('Module:Category handler')._main{
main = table.concat(self.categories[0] or {}),
template = table.concat(self.categories[10] or {}),
all = table.concat(self.categories.all or {}),
nocat = self.args.nocat,
page = self.args.page
}
end
function MessageBox:export()
local root = mw.html.create()
-- Add the subst check error.
if self.isSubstituted and self.name then
root:tag('b')
:addClass('error')
:wikitext(string.format(
'Template <code>%s[[Template:%s|%s]]%s</code> has been incorrectly substituted.',
mw.text.nowiki('{{'), self.name, self.name, mw.text.nowiki('}}')
))
end
local frame = mw.getCurrentFrame()
root:wikitext(frame:extensionTag{
name = 'templatestyles',
args = { src = self.base_templatestyles },
})
-- Add support for a single custom templatestyles sheet. Undocumented as
-- need should be limited and many templates using mbox are substed; we
-- don't want to spread templatestyles sheets around to arbitrary places
if self.templatestyles then
root:wikitext(frame:extensionTag{
name = 'templatestyles',
args = { src = self.templatestyles },
})
end
-- Create the box table.
local boxTable = root:tag('table')
boxTable:attr('id', self.id or nil)
for i, class in ipairs(self.classes or {}) do
boxTable:addClass(class or nil)
end
boxTable
:cssText(self.style or nil)
:attr('role', 'presentation')
if self.attrs then
boxTable:attr(self.attrs)
end
-- Add the left-hand image.
local row = boxTable:tag('tr')
if self.imageLeft then
local imageLeftCell = row:tag('td'):addClass('mbox-image')
if self.imageCellDiv then
-- If we are using a div, redefine imageLeftCell so that the image
-- is inside it. Divs use style="width: 52px;", which limits the
-- image width to 52px. If any images in a div are wider than that,
-- they may overlap with the text or cause other display problems.
imageLeftCell = imageLeftCell:tag('div'):addClass('mbox-image-div')
end
imageLeftCell:wikitext(self.imageLeft or nil)
elseif self.imageEmptyCell then
-- Some message boxes define an empty cell if no image is specified, and
-- some don't. The old template code in templates where empty cells are
-- specified gives the following hint: "No image. Cell with some width
-- or padding necessary for text cell to have 100% width."
row:tag('td')
:addClass('mbox-empty-cell')
end
-- Add the text.
local textCell = row:tag('td'):addClass('mbox-text')
if self.useCollapsibleTextFields then
-- The message box uses advanced text parameters that allow things to be
-- collapsible. At the moment, only ambox uses this.
textCell:cssText(self.textstyle or nil)
local textCellDiv = textCell:tag('div')
textCellDiv
:addClass('mbox-text-span')
:wikitext(self.issue or nil)
if (self.talk or self.fix) then
textCellDiv:tag('span')
:addClass('hide-when-compact')
:wikitext(self.talk and (' ' .. self.talk) or nil)
:wikitext(self.fix and (' ' .. self.fix) or nil)
end
textCellDiv:wikitext(self.date and (' ' .. self.date) or nil)
if self.info and not self.isSmall then
textCellDiv
:tag('span')
:addClass('hide-when-compact')
:wikitext(self.info and (' ' .. self.info) or nil)
end
if self.removalNotice then
textCellDiv:tag('span')
:addClass('hide-when-compact')
:tag('i')
:wikitext(string.format(" (%s)", self.removalNotice))
end
else
-- Default text formatting - anything goes.
textCell
:cssText(self.textstyle or nil)
:wikitext(self.text or nil)
end
-- Add the right-hand image.
if self.imageRight then
local imageRightCell = row:tag('td'):addClass('mbox-imageright')
if self.imageCellDiv then
-- If we are using a div, redefine imageRightCell so that the image
-- is inside it.
imageRightCell = imageRightCell:tag('div'):addClass('mbox-image-div')
end
imageRightCell
:wikitext(self.imageRight or nil)
end
-- Add the below row.
if self.below then
boxTable:tag('tr')
:tag('td')
:attr('colspan', self.imageRight and '3' or '2')
:addClass('mbox-text')
:cssText(self.textstyle or nil)
:wikitext(self.below or nil)
end
-- Add error message for invalid type parameters.
if self.invalidTypeError then
root:tag('div')
:addClass('mbox-invalid-type')
:wikitext(string.format(
'This message box is using an invalid "type=%s" parameter and needs fixing.',
self.type or ''
))
end
-- Add categories.
root:wikitext(self:renderCategories() or nil)
return tostring(root)
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p, mt = {}, {}
function p._exportClasses()
-- For testing.
return {
MessageBox = MessageBox
}
end
function p.main(boxType, args, cfgTables)
local box = MessageBox.new(boxType, args, cfgTables or mw.loadData(CONFIG_MODULE))
box:setParameters()
box:setCategories()
return box:export()
end
function mt.__index(t, k)
return function (frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
return t.main(k, getArgs(frame, {trim = false, removeBlanks = false}))
end
end
return setmetatable(p, mt)
fd6a8b1a0ac5916465cdf2eb099825f1d006cfba
Module:Message box/configuration
828
73
138
137
2022-07-21T19:50:56Z
Wikiricky
1
1 revision imported
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Message box configuration --
-- --
-- This module contains configuration data for [[Module:Message box]]. --
--------------------------------------------------------------------------------
return {
ambox = {
types = {
speedy = {
class = 'ambox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ambox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ambox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ambox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ambox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ambox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ambox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
allowBlankParams = {'talk', 'sect', 'date', 'issue', 'fix', 'subst', 'hidden'},
allowSmall = true,
smallParam = 'left',
smallClass = 'mbox-small-left',
substCheck = true,
classes = {'metadata', 'ambox'},
imageEmptyCell = true,
imageCheckBlank = true,
imageSmallSize = '20x20px',
imageCellDiv = true,
useCollapsibleTextFields = true,
imageRightNone = true,
sectionDefault = 'article',
allowMainspaceCategories = true,
templateCategory = 'Article message templates',
templateCategoryRequireName = true,
templateErrorCategory = 'Article message templates with missing parameters',
templateErrorParamsToCheck = {'issue', 'fix', 'subst'},
removalNotice = '<small>[[Help:Maintenance template removal|Learn how and when to remove this template message]]</small>',
templatestyles = 'Module:Message box/ambox.css'
},
cmbox = {
types = {
speedy = {
class = 'cmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'cmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'cmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'cmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'cmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'cmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'cmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'cmbox'},
imageEmptyCell = true,
templatestyles = 'Module:Message box/cmbox.css'
},
fmbox = {
types = {
warning = {
class = 'fmbox-warning',
image = 'Ambox warning pn.svg'
},
editnotice = {
class = 'fmbox-editnotice',
image = 'Information icon4.svg'
},
system = {
class = 'fmbox-system',
image = 'Information icon4.svg'
}
},
default = 'system',
showInvalidTypeError = true,
classes = {'fmbox'},
imageEmptyCell = false,
imageRightNone = false,
templatestyles = 'Module:Message box/fmbox.css'
},
imbox = {
types = {
speedy = {
class = 'imbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'imbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'imbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'imbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'imbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'imbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
license = {
class = 'imbox-license licensetpl',
image = 'Imbox license.png' -- @todo We need an SVG version of this
},
featured = {
class = 'imbox-featured',
image = 'Cscr-featured.svg'
},
notice = {
class = 'imbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'imbox'},
imageEmptyCell = true,
below = true,
templateCategory = 'File message boxes',
templatestyles = 'Module:Message box/imbox.css'
},
ombox = {
types = {
speedy = {
class = 'ombox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ombox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ombox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ombox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ombox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ombox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ombox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'ombox'},
allowSmall = true,
imageEmptyCell = true,
imageRightNone = true,
templatestyles = 'Module:Message box/ombox.css'
},
tmbox = {
types = {
speedy = {
class = 'tmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'tmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'tmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'tmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'tmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'tmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'tmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'tmbox'},
allowSmall = true,
imageRightNone = true,
imageEmptyCell = true,
templateCategory = 'Talk message boxes',
templatestyles = 'Module:Message box/tmbox.css'
}
}
b6f0151037e6867b577c8cca32ff297e48697a10
Module:Message box/ombox.css
828
74
140
139
2022-07-21T19:50:56Z
Wikiricky
1
1 revision imported
sanitized-css
text/css
/* {{pp|small=y}} */
.ombox {
margin: 4px 0;
border-collapse: collapse;
border: 1px solid #a2a9b1; /* Default "notice" gray */
background-color: #f8f9fa;
box-sizing: border-box;
}
/* For the "small=yes" option. */
.ombox.mbox-small {
font-size: 88%;
line-height: 1.25em;
}
.ombox-speedy {
border: 2px solid #b32424; /* Red */
background-color: #fee7e6; /* Pink */
}
.ombox-delete {
border: 2px solid #b32424; /* Red */
}
.ombox-content {
border: 1px solid #f28500; /* Orange */
}
.ombox-style {
border: 1px solid #fc3; /* Yellow */
}
.ombox-move {
border: 1px solid #9932cc; /* Purple */
}
.ombox-protection {
border: 2px solid #a2a9b1; /* Gray-gold */
}
.ombox .mbox-text {
border: none;
/* @noflip */
padding: 0.25em 0.9em;
width: 100%;
}
.ombox .mbox-image {
border: none;
/* @noflip */
padding: 2px 0 2px 0.9em;
text-align: center;
}
.ombox .mbox-imageright {
border: none;
/* @noflip */
padding: 2px 0.9em 2px 0;
text-align: center;
}
/* An empty narrow cell */
.ombox .mbox-empty-cell {
border: none;
padding: 0;
width: 1px;
}
.ombox .mbox-invalid-type {
text-align: center;
}
@media (min-width: 720px) {
.ombox {
margin: 4px 10%;
}
.ombox.mbox-small {
/* @noflip */
clear: right;
/* @noflip */
float: right;
/* @noflip */
margin: 4px 0 4px 1em;
width: 238px;
}
}
8fe3df4bb607e699eab2dbd23bd4a1a446391002
Module:Navbar
828
75
142
141
2022-07-21T19:50:56Z
Wikiricky
1
1 revision imported
Scribunto
text/plain
local p = {}
local cfg = mw.loadData('Module:Navbar/configuration')
local function get_title_arg(is_collapsible, template)
local title_arg = 1
if is_collapsible then title_arg = 2 end
if template then title_arg = 'template' end
return title_arg
end
local function choose_links(template, args)
-- The show table indicates the default displayed items.
-- view, talk, edit, hist, move, watch
-- TODO: Move to configuration.
local show = {true, true, true, false, false, false}
if template then
show[2] = false
show[3] = false
local index = {t = 2, d = 2, e = 3, h = 4, m = 5, w = 6,
talk = 2, edit = 3, hist = 4, move = 5, watch = 6}
-- TODO: Consider removing TableTools dependency.
for _, v in ipairs(require ('Module:TableTools').compressSparseArray(args)) do
local num = index[v]
if num then show[num] = true end
end
end
local remove_edit_link = args.noedit
if remove_edit_link then show[3] = false end
return show
end
local function add_link(link_description, ul, is_mini, font_style)
local l
if link_description.url then
l = {'[', '', ']'}
else
l = {'[[', '|', ']]'}
end
ul:tag('li')
:addClass('nv-' .. link_description.full)
:wikitext(l[1] .. link_description.link .. l[2])
:tag(is_mini and 'abbr' or 'span')
:attr('title', link_description.html_title)
:cssText(font_style)
:wikitext(is_mini and link_description.mini or link_description.full)
:done()
:wikitext(l[3])
:done()
end
local function make_list(title_text, has_brackets, displayed_links, is_mini, font_style)
local title = mw.title.new(mw.text.trim(title_text), cfg.title_namespace)
if not title then
error(cfg.invalid_title .. title_text)
end
local talkpage = title.talkPageTitle and title.talkPageTitle.fullText or ''
-- TODO: Get link_descriptions and show into the configuration module.
-- link_descriptions should be easier...
local link_descriptions = {
{ ['mini'] = 'v', ['full'] = 'view', ['html_title'] = 'View this template',
['link'] = title.fullText, ['url'] = false },
{ ['mini'] = 't', ['full'] = 'talk', ['html_title'] = 'Discuss this template',
['link'] = talkpage, ['url'] = false },
{ ['mini'] = 'e', ['full'] = 'edit', ['html_title'] = 'Edit this template',
['link'] = title:fullUrl('action=edit'), ['url'] = true },
{ ['mini'] = 'h', ['full'] = 'hist', ['html_title'] = 'History of this template',
['link'] = title:fullUrl('action=history'), ['url'] = true },
{ ['mini'] = 'm', ['full'] = 'move', ['html_title'] = 'Move this template',
['link'] = mw.title.new('Special:Movepage'):fullUrl('target='..title.fullText), ['url'] = true },
{ ['mini'] = 'w', ['full'] = 'watch', ['html_title'] = 'Watch this template',
['link'] = title:fullUrl('action=watch'), ['url'] = true }
}
local ul = mw.html.create('ul')
if has_brackets then
ul:addClass(cfg.classes.brackets)
:cssText(font_style)
end
for i, _ in ipairs(displayed_links) do
if displayed_links[i] then add_link(link_descriptions[i], ul, is_mini, font_style) end
end
return ul:done()
end
function p._navbar(args)
-- TODO: We probably don't need both fontstyle and fontcolor...
local font_style = args.fontstyle
local font_color = args.fontcolor
local is_collapsible = args.collapsible
local is_mini = args.mini
local is_plain = args.plain
local collapsible_class = nil
if is_collapsible then
collapsible_class = cfg.classes.collapsible
if not is_plain then is_mini = 1 end
if font_color then
font_style = (font_style or '') .. '; color: ' .. font_color .. ';'
end
end
local navbar_style = args.style
local div = mw.html.create():tag('div')
div
:addClass(cfg.classes.navbar)
:addClass(cfg.classes.plainlinks)
:addClass(cfg.classes.horizontal_list)
:addClass(collapsible_class) -- we made the determination earlier
:cssText(navbar_style)
if is_mini then div:addClass(cfg.classes.mini) end
local box_text = (args.text or cfg.box_text) .. ' '
-- the concatenated space guarantees the box text is separated
if not (is_mini or is_plain) then
div
:tag('span')
:addClass(cfg.classes.box_text)
:cssText(font_style)
:wikitext(box_text)
end
local template = args.template
local displayed_links = choose_links(template, args)
local has_brackets = args.brackets
local title_arg = get_title_arg(is_collapsible, template)
local title_text = args[title_arg] or (':' .. mw.getCurrentFrame():getParent():getTitle())
local list = make_list(title_text, has_brackets, displayed_links, is_mini, font_style)
div:node(list)
if is_collapsible then
local title_text_class
if is_mini then
title_text_class = cfg.classes.collapsible_title_mini
else
title_text_class = cfg.classes.collapsible_title_full
end
div:done()
:tag('div')
:addClass(title_text_class)
:cssText(font_style)
:wikitext(args[1])
end
return mw.getCurrentFrame():extensionTag{
name = 'templatestyles', args = { src = cfg.templatestyles }
} .. tostring(div:done())
end
function p.navbar(frame)
return p._navbar(require('Module:Arguments').getArgs(frame))
end
return p
a5c8d3a8f8beb18984ea7f145ddbdf88a065d23e
Module:Navbar/configuration
828
76
144
143
2022-07-21T19:50:57Z
Wikiricky
1
1 revision imported
Scribunto
text/plain
return {
['templatestyles'] = 'Module:Navbar/styles.css',
['box_text'] = 'This box: ', -- default text box when not plain or mini
['title_namespace'] = 'Template', -- namespace to default to for title
['invalid_title'] = 'Invalid title ',
['classes'] = { -- set a line to nil if you don't want it
['navbar'] = 'navbar',
['plainlinks'] = 'plainlinks', -- plainlinks
['horizontal_list'] = 'hlist', -- horizontal list class
['mini'] = 'navbar-mini', -- class indicating small links in the navbar
['this_box'] = 'navbar-boxtext',
['brackets'] = 'navbar-brackets',
-- 'collapsible' is the key for a class to indicate the navbar is
-- setting up the collapsible element in addition to the normal
-- navbar.
['collapsible'] = 'navbar-collapse',
['collapsible_title_mini'] = 'navbar-ct-mini',
['collapsible_title_full'] = 'navbar-ct-full'
}
}
bbf3d86b48a5b40835e8e232ae9821e6bca390ec
Module:Navbar/styles.css
828
77
146
145
2022-07-21T19:50:57Z
Wikiricky
1
1 revision imported
sanitized-css
text/css
/* {{pp|small=yes}} */
.navbar {
display: inline;
font-size: 88%;
font-weight: normal;
}
.navbar-collapse {
float: left;
text-align: left;
}
.navbar-boxtext {
word-spacing: 0;
}
.navbar ul {
display: inline-block;
white-space: nowrap;
line-height: inherit;
}
.navbar-brackets::before {
margin-right: -0.125em;
content: '[ ';
}
.navbar-brackets::after {
margin-left: -0.125em;
content: ' ]';
}
.navbar li {
word-spacing: -0.125em;
}
.navbar a > span,
.navbar a > abbr {
text-decoration: inherit;
}
.navbar-mini abbr {
font-variant: small-caps;
border-bottom: none;
text-decoration: none;
cursor: inherit;
}
.navbar-ct-full {
font-size: 114%;
margin: 0 7em;
}
.navbar-ct-mini {
font-size: 114%;
margin: 0 4em;
}
9d4056f949b4f0b159e3d40dfb1a5f01e72f9571
Module:No globals
828
78
148
147
2022-07-21T19:50:57Z
Wikiricky
1
1 revision imported
Scribunto
text/plain
local mt = getmetatable(_G) or {}
function mt.__index (t, k)
if k ~= 'arg' then
error('Tried to read nil global ' .. tostring(k), 2)
end
return nil
end
function mt.__newindex(t, k, v)
if k ~= 'arg' then
error('Tried to write global ' .. tostring(k), 2)
end
rawset(t, k, v)
end
setmetatable(_G, mt)
8ce3969f7d53b08bd00dabe4cc9780bc6afd412a
Module:Protection banner
828
79
150
149
2022-07-21T19:50:58Z
Wikiricky
1
1 revision imported
Scribunto
text/plain
-- This module implements {{pp-meta}} and its daughter templates such as
-- {{pp-dispute}}, {{pp-vandalism}} and {{pp-sock}}.
-- Initialise necessary modules.
require('Module:No globals')
local makeFileLink = require('Module:File link')._main
local effectiveProtectionLevel = require('Module:Effective protection level')._main
local effectiveProtectionExpiry = require('Module:Effective protection expiry')._main
local yesno = require('Module:Yesno')
-- Lazily initialise modules and objects we don't always need.
local getArgs, makeMessageBox, lang
-- Set constants.
local CONFIG_MODULE = 'Module:Protection banner/config'
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function makeCategoryLink(cat, sort)
if cat then
return string.format(
'[[%s:%s|%s]]',
mw.site.namespaces[14].name,
cat,
sort
)
end
end
-- Validation function for the expiry and the protection date
local function validateDate(dateString, dateType)
if not lang then
lang = mw.language.getContentLanguage()
end
local success, result = pcall(lang.formatDate, lang, 'U', dateString)
if success then
result = tonumber(result)
if result then
return result
end
end
error(string.format(
'invalid %s: %s',
dateType,
tostring(dateString)
), 4)
end
local function makeFullUrl(page, query, display)
return string.format(
'[%s %s]',
tostring(mw.uri.fullUrl(page, query)),
display
)
end
-- Given a directed graph formatted as node -> table of direct successors,
-- get a table of all nodes reachable from a given node (though always
-- including the given node).
local function getReachableNodes(graph, start)
local toWalk, retval = {[start] = true}, {}
while true do
-- Can't use pairs() since we're adding and removing things as we're iterating
local k = next(toWalk) -- This always gets the "first" key
if k == nil then
return retval
end
toWalk[k] = nil
retval[k] = true
for _,v in ipairs(graph[k]) do
if not retval[v] then
toWalk[v] = true
end
end
end
end
--------------------------------------------------------------------------------
-- Protection class
--------------------------------------------------------------------------------
local Protection = {}
Protection.__index = Protection
Protection.supportedActions = {
edit = true,
move = true,
autoreview = true,
upload = true
}
Protection.bannerConfigFields = {
'text',
'explanation',
'tooltip',
'alt',
'link',
'image'
}
function Protection.new(args, cfg, title)
local obj = {}
obj._cfg = cfg
obj.title = title or mw.title.getCurrentTitle()
-- Set action
if not args.action then
obj.action = 'edit'
elseif Protection.supportedActions[args.action] then
obj.action = args.action
else
error(string.format(
'invalid action: %s',
tostring(args.action)
), 3)
end
-- Set level
obj.level = args.demolevel or effectiveProtectionLevel(obj.action, obj.title)
if not obj.level or (obj.action == 'move' and obj.level == 'autoconfirmed') then
-- Users need to be autoconfirmed to move pages anyway, so treat
-- semi-move-protected pages as unprotected.
obj.level = '*'
end
-- Set expiry
local effectiveExpiry = effectiveProtectionExpiry(obj.action, obj.title)
if effectiveExpiry == 'infinity' then
obj.expiry = 'indef'
elseif effectiveExpiry ~= 'unknown' then
obj.expiry = validateDate(effectiveExpiry, 'expiry date')
end
-- Set reason
if args[1] then
obj.reason = mw.ustring.lower(args[1])
if obj.reason:find('|') then
error('reasons cannot contain the pipe character ("|")', 3)
end
end
-- Set protection date
if args.date then
obj.protectionDate = validateDate(args.date, 'protection date')
end
-- Set banner config
do
obj.bannerConfig = {}
local configTables = {}
if cfg.banners[obj.action] then
configTables[#configTables + 1] = cfg.banners[obj.action][obj.reason]
end
if cfg.defaultBanners[obj.action] then
configTables[#configTables + 1] = cfg.defaultBanners[obj.action][obj.level]
configTables[#configTables + 1] = cfg.defaultBanners[obj.action].default
end
configTables[#configTables + 1] = cfg.masterBanner
for i, field in ipairs(Protection.bannerConfigFields) do
for j, t in ipairs(configTables) do
if t[field] then
obj.bannerConfig[field] = t[field]
break
end
end
end
end
return setmetatable(obj, Protection)
end
function Protection:isUserScript()
-- Whether the page is a user JavaScript or CSS page.
local title = self.title
return title.namespace == 2 and (
title.contentModel == 'javascript' or title.contentModel == 'css'
)
end
function Protection:isProtected()
return self.level ~= '*'
end
function Protection:shouldShowLock()
-- Whether we should output a banner/padlock
return self:isProtected() and not self:isUserScript()
end
-- Whether this page needs a protection category.
Protection.shouldHaveProtectionCategory = Protection.shouldShowLock
function Protection:isTemporary()
return type(self.expiry) == 'number'
end
function Protection:makeProtectionCategory()
if not self:shouldHaveProtectionCategory() then
return ''
end
local cfg = self._cfg
local title = self.title
-- Get the expiry key fragment.
local expiryFragment
if self.expiry == 'indef' then
expiryFragment = self.expiry
elseif type(self.expiry) == 'number' then
expiryFragment = 'temp'
end
-- Get the namespace key fragment.
local namespaceFragment = cfg.categoryNamespaceKeys[title.namespace]
if not namespaceFragment and title.namespace % 2 == 1 then
namespaceFragment = 'talk'
end
-- Define the order that key fragments are tested in. This is done with an
-- array of tables containing the value to be tested, along with its
-- position in the cfg.protectionCategories table.
local order = {
{val = expiryFragment, keypos = 1},
{val = namespaceFragment, keypos = 2},
{val = self.reason, keypos = 3},
{val = self.level, keypos = 4},
{val = self.action, keypos = 5}
}
--[[
-- The old protection templates used an ad-hoc protection category system,
-- with some templates prioritising namespaces in their categories, and
-- others prioritising the protection reason. To emulate this in this module
-- we use the config table cfg.reasonsWithNamespacePriority to set the
-- reasons for which namespaces have priority over protection reason.
-- If we are dealing with one of those reasons, move the namespace table to
-- the end of the order table, i.e. give it highest priority. If not, the
-- reason should have highest priority, so move that to the end of the table
-- instead.
--]]
table.insert(order, table.remove(order, self.reason and cfg.reasonsWithNamespacePriority[self.reason] and 2 or 3))
--[[
-- Define the attempt order. Inactive subtables (subtables with nil "value"
-- fields) are moved to the end, where they will later be given the key
-- "all". This is to cut down on the number of table lookups in
-- cfg.protectionCategories, which grows exponentially with the number of
-- non-nil keys. We keep track of the number of active subtables with the
-- noActive parameter.
--]]
local noActive, attemptOrder
do
local active, inactive = {}, {}
for i, t in ipairs(order) do
if t.val then
active[#active + 1] = t
else
inactive[#inactive + 1] = t
end
end
noActive = #active
attemptOrder = active
for i, t in ipairs(inactive) do
attemptOrder[#attemptOrder + 1] = t
end
end
--[[
-- Check increasingly generic key combinations until we find a match. If a
-- specific category exists for the combination of key fragments we are
-- given, that match will be found first. If not, we keep trying different
-- key fragment combinations until we match using the key
-- "all-all-all-all-all".
--
-- To generate the keys, we index the key subtables using a binary matrix
-- with indexes i and j. j is only calculated up to the number of active
-- subtables. For example, if there were three active subtables, the matrix
-- would look like this, with 0 corresponding to the key fragment "all", and
-- 1 corresponding to other key fragments.
--
-- j 1 2 3
-- i
-- 1 1 1 1
-- 2 0 1 1
-- 3 1 0 1
-- 4 0 0 1
-- 5 1 1 0
-- 6 0 1 0
-- 7 1 0 0
-- 8 0 0 0
--
-- Values of j higher than the number of active subtables are set
-- to the string "all".
--
-- A key for cfg.protectionCategories is constructed for each value of i.
-- The position of the value in the key is determined by the keypos field in
-- each subtable.
--]]
local cats = cfg.protectionCategories
for i = 1, 2^noActive do
local key = {}
for j, t in ipairs(attemptOrder) do
if j > noActive then
key[t.keypos] = 'all'
else
local quotient = i / 2 ^ (j - 1)
quotient = math.ceil(quotient)
if quotient % 2 == 1 then
key[t.keypos] = t.val
else
key[t.keypos] = 'all'
end
end
end
key = table.concat(key, '|')
local attempt = cats[key]
if attempt then
return makeCategoryLink(attempt, title.text)
end
end
return ''
end
function Protection:isIncorrect()
local expiry = self.expiry
return not self:shouldHaveProtectionCategory()
or type(expiry) == 'number' and expiry < os.time()
end
function Protection:isTemplateProtectedNonTemplate()
local action, namespace = self.action, self.title.namespace
return self.level == 'templateeditor'
and (
(action ~= 'edit' and action ~= 'move')
or (namespace ~= 10 and namespace ~= 828)
)
end
function Protection:makeCategoryLinks()
local msg = self._cfg.msg
local ret = {self:makeProtectionCategory()}
if self:isIncorrect() then
ret[#ret + 1] = makeCategoryLink(
msg['tracking-category-incorrect'],
self.title.text
)
end
if self:isTemplateProtectedNonTemplate() then
ret[#ret + 1] = makeCategoryLink(
msg['tracking-category-template'],
self.title.text
)
end
return table.concat(ret)
end
--------------------------------------------------------------------------------
-- Blurb class
--------------------------------------------------------------------------------
local Blurb = {}
Blurb.__index = Blurb
Blurb.bannerTextFields = {
text = true,
explanation = true,
tooltip = true,
alt = true,
link = true
}
function Blurb.new(protectionObj, args, cfg)
return setmetatable({
_cfg = cfg,
_protectionObj = protectionObj,
_args = args
}, Blurb)
end
-- Private methods --
function Blurb:_formatDate(num)
-- Formats a Unix timestamp into dd Month, YYYY format.
lang = lang or mw.language.getContentLanguage()
local success, date = pcall(
lang.formatDate,
lang,
self._cfg.msg['expiry-date-format'] or 'j F Y',
'@' .. tostring(num)
)
if success then
return date
end
end
function Blurb:_getExpandedMessage(msgKey)
return self:_substituteParameters(self._cfg.msg[msgKey])
end
function Blurb:_substituteParameters(msg)
if not self._params then
local parameterFuncs = {}
parameterFuncs.CURRENTVERSION = self._makeCurrentVersionParameter
parameterFuncs.EDITREQUEST = self._makeEditRequestParameter
parameterFuncs.EXPIRY = self._makeExpiryParameter
parameterFuncs.EXPLANATIONBLURB = self._makeExplanationBlurbParameter
parameterFuncs.IMAGELINK = self._makeImageLinkParameter
parameterFuncs.INTROBLURB = self._makeIntroBlurbParameter
parameterFuncs.INTROFRAGMENT = self._makeIntroFragmentParameter
parameterFuncs.PAGETYPE = self._makePagetypeParameter
parameterFuncs.PROTECTIONBLURB = self._makeProtectionBlurbParameter
parameterFuncs.PROTECTIONDATE = self._makeProtectionDateParameter
parameterFuncs.PROTECTIONLEVEL = self._makeProtectionLevelParameter
parameterFuncs.PROTECTIONLOG = self._makeProtectionLogParameter
parameterFuncs.TALKPAGE = self._makeTalkPageParameter
parameterFuncs.TOOLTIPBLURB = self._makeTooltipBlurbParameter
parameterFuncs.TOOLTIPFRAGMENT = self._makeTooltipFragmentParameter
parameterFuncs.VANDAL = self._makeVandalTemplateParameter
self._params = setmetatable({}, {
__index = function (t, k)
local param
if parameterFuncs[k] then
param = parameterFuncs[k](self)
end
param = param or ''
t[k] = param
return param
end
})
end
msg = msg:gsub('${(%u+)}', self._params)
return msg
end
function Blurb:_makeCurrentVersionParameter()
-- A link to the page history or the move log, depending on the kind of
-- protection.
local pagename = self._protectionObj.title.prefixedText
if self._protectionObj.action == 'move' then
-- We need the move log link.
return makeFullUrl(
'Special:Log',
{type = 'move', page = pagename},
self:_getExpandedMessage('current-version-move-display')
)
else
-- We need the history link.
return makeFullUrl(
pagename,
{action = 'history'},
self:_getExpandedMessage('current-version-edit-display')
)
end
end
function Blurb:_makeEditRequestParameter()
local mEditRequest = require('Module:Submit an edit request')
local action = self._protectionObj.action
local level = self._protectionObj.level
-- Get the edit request type.
local requestType
if action == 'edit' then
if level == 'autoconfirmed' then
requestType = 'semi'
elseif level == 'extendedconfirmed' then
requestType = 'extended'
elseif level == 'templateeditor' then
requestType = 'template'
end
end
requestType = requestType or 'full'
-- Get the display value.
local display = self:_getExpandedMessage('edit-request-display')
return mEditRequest._link{type = requestType, display = display}
end
function Blurb:_makeExpiryParameter()
local expiry = self._protectionObj.expiry
if type(expiry) == 'number' then
return self:_formatDate(expiry)
else
return expiry
end
end
function Blurb:_makeExplanationBlurbParameter()
-- Cover special cases first.
if self._protectionObj.title.namespace == 8 then
-- MediaWiki namespace
return self:_getExpandedMessage('explanation-blurb-nounprotect')
end
-- Get explanation blurb table keys
local action = self._protectionObj.action
local level = self._protectionObj.level
local talkKey = self._protectionObj.title.isTalkPage and 'talk' or 'subject'
-- Find the message in the explanation blurb table and substitute any
-- parameters.
local explanations = self._cfg.explanationBlurbs
local msg
if explanations[action][level] and explanations[action][level][talkKey] then
msg = explanations[action][level][talkKey]
elseif explanations[action][level] and explanations[action][level].default then
msg = explanations[action][level].default
elseif explanations[action].default and explanations[action].default[talkKey] then
msg = explanations[action].default[talkKey]
elseif explanations[action].default and explanations[action].default.default then
msg = explanations[action].default.default
else
error(string.format(
'could not find explanation blurb for action "%s", level "%s" and talk key "%s"',
action,
level,
talkKey
), 8)
end
return self:_substituteParameters(msg)
end
function Blurb:_makeImageLinkParameter()
local imageLinks = self._cfg.imageLinks
local action = self._protectionObj.action
local level = self._protectionObj.level
local msg
if imageLinks[action][level] then
msg = imageLinks[action][level]
elseif imageLinks[action].default then
msg = imageLinks[action].default
else
msg = imageLinks.edit.default
end
return self:_substituteParameters(msg)
end
function Blurb:_makeIntroBlurbParameter()
if self._protectionObj:isTemporary() then
return self:_getExpandedMessage('intro-blurb-expiry')
else
return self:_getExpandedMessage('intro-blurb-noexpiry')
end
end
function Blurb:_makeIntroFragmentParameter()
if self._protectionObj:isTemporary() then
return self:_getExpandedMessage('intro-fragment-expiry')
else
return self:_getExpandedMessage('intro-fragment-noexpiry')
end
end
function Blurb:_makePagetypeParameter()
local pagetypes = self._cfg.pagetypes
return pagetypes[self._protectionObj.title.namespace]
or pagetypes.default
or error('no default pagetype defined', 8)
end
function Blurb:_makeProtectionBlurbParameter()
local protectionBlurbs = self._cfg.protectionBlurbs
local action = self._protectionObj.action
local level = self._protectionObj.level
local msg
if protectionBlurbs[action][level] then
msg = protectionBlurbs[action][level]
elseif protectionBlurbs[action].default then
msg = protectionBlurbs[action].default
elseif protectionBlurbs.edit.default then
msg = protectionBlurbs.edit.default
else
error('no protection blurb defined for protectionBlurbs.edit.default', 8)
end
return self:_substituteParameters(msg)
end
function Blurb:_makeProtectionDateParameter()
local protectionDate = self._protectionObj.protectionDate
if type(protectionDate) == 'number' then
return self:_formatDate(protectionDate)
else
return protectionDate
end
end
function Blurb:_makeProtectionLevelParameter()
local protectionLevels = self._cfg.protectionLevels
local action = self._protectionObj.action
local level = self._protectionObj.level
local msg
if protectionLevels[action][level] then
msg = protectionLevels[action][level]
elseif protectionLevels[action].default then
msg = protectionLevels[action].default
elseif protectionLevels.edit.default then
msg = protectionLevels.edit.default
else
error('no protection level defined for protectionLevels.edit.default', 8)
end
return self:_substituteParameters(msg)
end
function Blurb:_makeProtectionLogParameter()
local pagename = self._protectionObj.title.prefixedText
if self._protectionObj.action == 'autoreview' then
-- We need the pending changes log.
return makeFullUrl(
'Special:Log',
{type = 'stable', page = pagename},
self:_getExpandedMessage('pc-log-display')
)
else
-- We need the protection log.
return makeFullUrl(
'Special:Log',
{type = 'protect', page = pagename},
self:_getExpandedMessage('protection-log-display')
)
end
end
function Blurb:_makeTalkPageParameter()
return string.format(
'[[%s:%s#%s|%s]]',
mw.site.namespaces[self._protectionObj.title.namespace].talk.name,
self._protectionObj.title.text,
self._args.section or 'top',
self:_getExpandedMessage('talk-page-link-display')
)
end
function Blurb:_makeTooltipBlurbParameter()
if self._protectionObj:isTemporary() then
return self:_getExpandedMessage('tooltip-blurb-expiry')
else
return self:_getExpandedMessage('tooltip-blurb-noexpiry')
end
end
function Blurb:_makeTooltipFragmentParameter()
if self._protectionObj:isTemporary() then
return self:_getExpandedMessage('tooltip-fragment-expiry')
else
return self:_getExpandedMessage('tooltip-fragment-noexpiry')
end
end
function Blurb:_makeVandalTemplateParameter()
return mw.getCurrentFrame():expandTemplate{
title="vandal-m",
args={self._args.user or self._protectionObj.title.baseText}
}
end
-- Public methods --
function Blurb:makeBannerText(key)
-- Validate input.
if not key or not Blurb.bannerTextFields[key] then
error(string.format(
'"%s" is not a valid banner config field',
tostring(key)
), 2)
end
-- Generate the text.
local msg = self._protectionObj.bannerConfig[key]
if type(msg) == 'string' then
return self:_substituteParameters(msg)
elseif type(msg) == 'function' then
msg = msg(self._protectionObj, self._args)
if type(msg) ~= 'string' then
error(string.format(
'bad output from banner config function with key "%s"'
.. ' (expected string, got %s)',
tostring(key),
type(msg)
), 4)
end
return self:_substituteParameters(msg)
end
end
--------------------------------------------------------------------------------
-- BannerTemplate class
--------------------------------------------------------------------------------
local BannerTemplate = {}
BannerTemplate.__index = BannerTemplate
function BannerTemplate.new(protectionObj, cfg)
local obj = {}
obj._cfg = cfg
-- Set the image filename.
local imageFilename = protectionObj.bannerConfig.image
if imageFilename then
obj._imageFilename = imageFilename
else
-- If an image filename isn't specified explicitly in the banner config,
-- generate it from the protection status and the namespace.
local action = protectionObj.action
local level = protectionObj.level
local namespace = protectionObj.title.namespace
local reason = protectionObj.reason
-- Deal with special cases first.
if (
namespace == 10
or namespace == 828
or reason and obj._cfg.indefImageReasons[reason]
)
and action == 'edit'
and level == 'sysop'
and not protectionObj:isTemporary()
then
-- Fully protected modules and templates get the special red "indef"
-- padlock.
obj._imageFilename = obj._cfg.msg['image-filename-indef']
else
-- Deal with regular protection types.
local images = obj._cfg.images
if images[action] then
if images[action][level] then
obj._imageFilename = images[action][level]
elseif images[action].default then
obj._imageFilename = images[action].default
end
end
end
end
return setmetatable(obj, BannerTemplate)
end
function BannerTemplate:renderImage()
local filename = self._imageFilename
or self._cfg.msg['image-filename-default']
or 'Transparent.gif'
return makeFileLink{
file = filename,
size = (self.imageWidth or 20) .. 'px',
alt = self._imageAlt,
link = self._imageLink,
caption = self.imageCaption
}
end
--------------------------------------------------------------------------------
-- Banner class
--------------------------------------------------------------------------------
local Banner = setmetatable({}, BannerTemplate)
Banner.__index = Banner
function Banner.new(protectionObj, blurbObj, cfg)
local obj = BannerTemplate.new(protectionObj, cfg) -- This doesn't need the blurb.
obj.imageWidth = 40
obj.imageCaption = blurbObj:makeBannerText('alt') -- Large banners use the alt text for the tooltip.
obj._reasonText = blurbObj:makeBannerText('text')
obj._explanationText = blurbObj:makeBannerText('explanation')
obj._page = protectionObj.title.prefixedText -- Only makes a difference in testing.
return setmetatable(obj, Banner)
end
function Banner:__tostring()
-- Renders the banner.
makeMessageBox = makeMessageBox or require('Module:Message box').main
local reasonText = self._reasonText or error('no reason text set', 2)
local explanationText = self._explanationText
local mbargs = {
page = self._page,
type = 'protection',
image = self:renderImage(),
text = string.format(
"'''%s'''%s",
reasonText,
explanationText and '<br />' .. explanationText or ''
)
}
return makeMessageBox('mbox', mbargs)
end
--------------------------------------------------------------------------------
-- Padlock class
--------------------------------------------------------------------------------
local Padlock = setmetatable({}, BannerTemplate)
Padlock.__index = Padlock
function Padlock.new(protectionObj, blurbObj, cfg)
local obj = BannerTemplate.new(protectionObj, cfg) -- This doesn't need the blurb.
obj.imageWidth = 20
obj.imageCaption = blurbObj:makeBannerText('tooltip')
obj._imageAlt = blurbObj:makeBannerText('alt')
obj._imageLink = blurbObj:makeBannerText('link')
obj._indicatorName = cfg.padlockIndicatorNames[protectionObj.action]
or cfg.padlockIndicatorNames.default
or 'pp-default'
return setmetatable(obj, Padlock)
end
function Padlock:__tostring()
local frame = mw.getCurrentFrame()
-- The nowiki tag helps prevent whitespace at the top of articles.
return frame:extensionTag{name = 'nowiki'} .. frame:extensionTag{
name = 'indicator',
args = {name = self._indicatorName},
content = self:renderImage()
}
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p = {}
function p._exportClasses()
-- This is used for testing purposes.
return {
Protection = Protection,
Blurb = Blurb,
BannerTemplate = BannerTemplate,
Banner = Banner,
Padlock = Padlock,
}
end
function p._main(args, cfg, title)
args = args or {}
cfg = cfg or require(CONFIG_MODULE)
local protectionObj = Protection.new(args, cfg, title)
local ret = {}
-- If a page's edit protection is equally or more restrictive than its
-- protection from some other action, then don't bother displaying anything
-- for the other action (except categories).
if not yesno(args.catonly) and (protectionObj.action == 'edit' or
args.demolevel or
not getReachableNodes(
cfg.hierarchy,
protectionObj.level
)[effectiveProtectionLevel('edit', protectionObj.title)])
then
-- Initialise the blurb object
local blurbObj = Blurb.new(protectionObj, args, cfg)
-- Render the banner
if protectionObj:shouldShowLock() then
ret[#ret + 1] = tostring(
(yesno(args.small) and Padlock or Banner)
.new(protectionObj, blurbObj, cfg)
)
end
end
-- Render the categories
if yesno(args.category) ~= false then
ret[#ret + 1] = protectionObj:makeCategoryLinks()
end
return table.concat(ret)
end
function p.main(frame, cfg)
cfg = cfg or require(CONFIG_MODULE)
-- Find default args, if any.
local parent = frame.getParent and frame:getParent()
local defaultArgs = parent and cfg.wrappers[parent:getTitle():gsub('/sandbox$', '')]
-- Find user args, and use the parent frame if we are being called from a
-- wrapper template.
getArgs = getArgs or require('Module:Arguments').getArgs
local userArgs = getArgs(frame, {
parentOnly = defaultArgs,
frameOnly = not defaultArgs
})
-- Build the args table. User-specified args overwrite default args.
local args = {}
for k, v in pairs(defaultArgs or {}) do
args[k] = v
end
for k, v in pairs(userArgs) do
args[k] = v
end
return p._main(args, cfg)
end
return p
b24b049f70572e29b1a408a5a11045d65118e43c
Module:Protection banner/config
828
80
152
151
2022-07-21T19:50:58Z
Wikiricky
1
1 revision imported
Scribunto
text/plain
-- This module provides configuration data for [[Module:Protection banner]].
return {
--------------------------------------------------------------------------------
--
-- BANNER DATA
--
--------------------------------------------------------------------------------
--[[
-- Banner data consists of six fields:
-- * text - the main protection text that appears at the top of protection
-- banners.
-- * explanation - the text that appears below the main protection text, used
-- to explain the details of the protection.
-- * tooltip - the tooltip text you see when you move the mouse over a small
-- padlock icon.
-- * link - the page that the small padlock icon links to.
-- * alt - the alt text for the small padlock icon. This is also used as tooltip
-- text for the large protection banners.
-- * image - the padlock image used in both protection banners and small padlock
-- icons.
--
-- The module checks in three separate tables to find a value for each field.
-- First it checks the banners table, which has values specific to the reason
-- for the page being protected. Then the module checks the defaultBanners
-- table, which has values specific to each protection level. Finally, the
-- module checks the masterBanner table, which holds data for protection
-- templates to use if no data has been found in the previous two tables.
--
-- The values in the banner data can take parameters. These are specified
-- using ${TEXTLIKETHIS} (a dollar sign preceding a parameter name
-- enclosed in curly braces).
--
-- Available parameters:
--
-- ${CURRENTVERSION} - a link to the page history or the move log, with the
-- display message "current-version-edit-display" or
-- "current-version-move-display".
--
-- ${EDITREQUEST} - a link to create an edit request for the current page.
--
-- ${EXPLANATIONBLURB} - an explanation blurb, e.g. "Please discuss any changes
-- on the talk page; you may submit a request to ask an administrator to make
-- an edit if it is minor or supported by consensus."
--
-- ${IMAGELINK} - a link to set the image to, depending on the protection
-- action and protection level.
--
-- ${INTROBLURB} - the PROTECTIONBLURB parameter, plus the expiry if an expiry
-- is set. E.g. "Editing of this page by new or unregistered users is currently
-- disabled until dd Month YYYY."
--
-- ${INTROFRAGMENT} - the same as ${INTROBLURB}, but without final punctuation
-- so that it can be used in run-on sentences.
--
-- ${PAGETYPE} - the type of the page, e.g. "article" or "template".
-- Defined in the cfg.pagetypes table.
--
-- ${PROTECTIONBLURB} - a blurb explaining the protection level of the page, e.g.
-- "Editing of this page by new or unregistered users is currently disabled"
--
-- ${PROTECTIONDATE} - the protection date, if it has been supplied to the
-- template.
--
-- ${PROTECTIONLEVEL} - the protection level, e.g. "fully protected" or
-- "semi-protected".
--
-- ${PROTECTIONLOG} - a link to the protection log or the pending changes log,
-- depending on the protection action.
--
-- ${TALKPAGE} - a link to the talk page. If a section is specified, links
-- straight to that talk page section.
--
-- ${TOOLTIPBLURB} - uses the PAGETYPE, PROTECTIONTYPE and EXPIRY parameters to
-- create a blurb like "This template is semi-protected", or "This article is
-- move-protected until DD Month YYYY".
--
-- ${VANDAL} - links for the specified username (or the root page name)
-- using Module:Vandal-m.
--
-- Functions
--
-- For advanced users, it is possible to use Lua functions instead of strings
-- in the banner config tables. Using functions gives flexibility that is not
-- possible just by using parameters. Functions take two arguments, the
-- protection object and the template arguments, and they must output a string.
--
-- For example:
--
-- text = function (protectionObj, args)
-- if protectionObj.level == 'autoconfirmed' then
-- return 'foo'
-- else
-- return 'bar'
-- end
-- end
--
-- Some protection object properties and methods that may be useful:
-- protectionObj.action - the protection action
-- protectionObj.level - the protection level
-- protectionObj.reason - the protection reason
-- protectionObj.expiry - the expiry. Nil if unset, the string "indef" if set
-- to indefinite, and the protection time in unix time if temporary.
-- protectionObj.protectionDate - the protection date in unix time, or nil if
-- unspecified.
-- protectionObj.bannerConfig - the banner config found by the module. Beware
-- of editing the config field used by the function, as it could create an
-- infinite loop.
-- protectionObj:isProtected - returns a boolean showing whether the page is
-- protected.
-- protectionObj:isTemporary - returns a boolean showing whether the expiry is
-- temporary.
-- protectionObj:isIncorrect - returns a boolean showing whether the protection
-- template is incorrect.
--]]
-- The master banner data, used if no values have been found in banners or
-- defaultBanners.
masterBanner = {
text = '${INTROBLURB}',
explanation = '${EXPLANATIONBLURB}',
tooltip = '${TOOLTIPBLURB}',
link = '${IMAGELINK}',
alt = 'Page ${PROTECTIONLEVEL}'
},
-- The default banner data. This holds banner data for different protection
-- levels.
-- *required* - this table needs edit, move, autoreview and upload subtables.
defaultBanners = {
edit = {},
move = {},
autoreview = {
default = {
alt = 'Page protected with pending changes',
tooltip = 'All edits by unregistered and new users are subject to review prior to becoming visible to unregistered users',
image = 'Pending-protection-shackle.svg'
}
},
upload = {}
},
-- The banner data. This holds banner data for different protection reasons.
-- In fact, the reasons specified in this table control which reasons are
-- valid inputs to the first positional parameter.
--
-- There is also a non-standard "description" field that can be used for items
-- in this table. This is a description of the protection reason for use in the
-- module documentation.
--
-- *required* - this table needs edit, move, autoreview and upload subtables.
banners = {
edit = {
blp = {
description = 'For pages protected to promote compliance with the'
.. ' [[Wikipedia:Biographies of living persons'
.. '|biographies of living persons]] policy',
text = '${INTROFRAGMENT} to promote compliance with'
.. ' [[Wikipedia:Biographies of living persons'
.. "|Wikipedia's policy on the biographies"
.. ' of living people]].',
tooltip = '${TOOLTIPFRAGMENT} to promote compliance with the policy on'
.. ' biographies of living persons',
},
dmca = {
description = 'For pages protected by the Wikimedia Foundation'
.. ' due to [[Digital Millennium Copyright Act]] takedown requests',
explanation = function (protectionObj, args)
local ret = 'Pursuant to a rights owner notice under the Digital'
.. ' Millennium Copyright Act (DMCA) regarding some content'
.. ' in this article, the Wikimedia Foundation acted under'
.. ' applicable law and took down and restricted the content'
.. ' in question.'
if args.notice then
ret = ret .. ' A copy of the received notice can be found here: '
.. args.notice .. '.'
end
ret = ret .. ' For more information, including websites discussing'
.. ' how to file a counter-notice, please see'
.. " [[Wikipedia:Office actions]] and the article's ${TALKPAGE}."
.. "'''Do not remove this template from the article until the"
.. " restrictions are withdrawn'''."
return ret
end,
image = 'Office-protection-shackle.svg',
},
dispute = {
description = 'For pages protected due to editing disputes',
text = function (protectionObj, args)
-- Find the value of "disputes".
local display = 'disputes'
local disputes
if args.section then
disputes = string.format(
'[[%s:%s#%s|%s]]',
mw.site.namespaces[protectionObj.title.namespace].talk.name,
protectionObj.title.text,
args.section,
display
)
else
disputes = display
end
-- Make the blurb, depending on the expiry.
local msg
if type(protectionObj.expiry) == 'number' then
msg = '${INTROFRAGMENT} or until editing %s have been resolved.'
else
msg = '${INTROFRAGMENT} until editing %s have been resolved.'
end
return string.format(msg, disputes)
end,
explanation = "This protection is '''not''' an endorsement of the"
.. ' ${CURRENTVERSION}. ${EXPLANATIONBLURB}',
tooltip = '${TOOLTIPFRAGMENT} due to editing disputes',
},
ecp = {
description = 'For articles in topic areas authorized by'
.. ' [[Wikipedia:Arbitration Committee|ArbCom]] or'
.. ' meets the criteria for community use',
tooltip = 'This ${PAGETYPE} is extended-confirmed protected',
alt = 'Extended-protected ${PAGETYPE}',
},
mainpage = {
description = 'For pages protected for being displayed on the [[Main Page]]',
text = 'This file is currently'
.. ' [[Wikipedia:This page is protected|protected]] from'
.. ' editing because it is currently or will soon be displayed'
.. ' on the [[Main Page]].',
explanation = 'Images on the Main Page are protected due to their high'
.. ' visibility. Please discuss any necessary changes on the ${TALKPAGE}.'
.. '<br /><span style="font-size:90%;">'
.. "'''Administrators:''' Once this image is definitely off the Main Page,"
.. ' please unprotect this file, or reduce to semi-protection,'
.. ' as appropriate.</span>',
},
office = {
description = 'For pages protected by the Wikimedia Foundation',
text = function (protectionObj, args)
local ret = 'This ${PAGETYPE} is currently under the'
.. ' scrutiny of the'
.. ' [[Wikipedia:Office actions|Wikimedia Foundation Office]]'
.. ' and is protected.'
if protectionObj.protectionDate then
ret = ret .. ' It has been protected since ${PROTECTIONDATE}.'
end
return ret
end,
explanation = "If you can edit this page, please discuss all changes and"
.. " additions on the ${TALKPAGE} first. '''Do not remove protection from this"
.. " page unless you are authorized by the Wikimedia Foundation to do"
.. " so.'''",
image = 'Office-protection-shackle.svg',
},
reset = {
description = 'For pages protected by the Wikimedia Foundation and'
.. ' "reset" to a bare-bones version',
text = 'This ${PAGETYPE} is currently under the'
.. ' scrutiny of the'
.. ' [[Wikipedia:Office actions|Wikimedia Foundation Office]]'
.. ' and is protected.',
explanation = function (protectionObj, args)
local ret = ''
if protectionObj.protectionDate then
ret = ret .. 'On ${PROTECTIONDATE} this ${PAGETYPE} was'
else
ret = ret .. 'This ${PAGETYPE} has been'
end
ret = ret .. ' reduced to a'
.. ' simplified, "bare bones" version so that it may be completely'
.. ' rewritten to ensure it meets the policies of'
.. ' [[WP:NPOV|Neutral Point of View]] and [[WP:V|Verifiability]].'
.. ' Standard Wikipedia policies will apply to its rewriting—which'
.. ' will eventually be open to all editors—and will be strictly'
.. ' enforced. The ${PAGETYPE} has been ${PROTECTIONLEVEL} while'
.. ' it is being rebuilt.\n\n'
.. 'Any insertion of material directly from'
.. ' pre-protection revisions of the ${PAGETYPE} will be removed, as'
.. ' will any material added to the ${PAGETYPE} that is not properly'
.. ' sourced. The associated talk page(s) were also cleared on the'
.. " same date.\n\n"
.. "If you can edit this page, please discuss all changes and"
.. " additions on the ${TALKPAGE} first. '''Do not override"
.. " this action, and do not remove protection from this page,"
.. " unless you are authorized by the Wikimedia Foundation"
.. " to do so. No editor may remove this notice.'''"
return ret
end,
image = 'Office-protection-shackle.svg',
},
sock = {
description = 'For pages protected due to'
.. ' [[Wikipedia:Sock puppetry|sock puppetry]]',
text = '${INTROFRAGMENT} to prevent [[Wikipedia:Sock puppetry|sock puppets]] of'
.. ' [[Wikipedia:Blocking policy|blocked]] or'
.. ' [[Wikipedia:Banning policy|banned users]]'
.. ' from editing it.',
tooltip = '${TOOLTIPFRAGMENT} to prevent sock puppets of blocked or banned users from'
.. ' editing it',
},
template = {
description = 'For [[Wikipedia:High-risk templates|high-risk]]'
.. ' templates and Lua modules',
text = 'This is a permanently [[Help:Protection|protected]] ${PAGETYPE},'
.. ' as it is [[Wikipedia:High-risk templates|high-risk]].',
explanation = 'Please discuss any changes on the ${TALKPAGE}; you may'
.. ' ${EDITREQUEST} to ask an'
.. ' [[Wikipedia:Administrators|administrator]] or'
.. ' [[Wikipedia:Template editor|template editor]] to make an edit if'
.. ' it is [[Help:Minor edit#When to mark an edit as a minor edit'
.. '|uncontroversial]] or supported by'
.. ' [[Wikipedia:Consensus|consensus]]. You can also'
.. ' [[Wikipedia:Requests for page protection|request]] that the page be'
.. ' unprotected.',
tooltip = 'This high-risk ${PAGETYPE} is permanently ${PROTECTIONLEVEL}'
.. ' to prevent vandalism',
alt = 'Permanently protected ${PAGETYPE}',
},
usertalk = {
description = 'For pages protected against disruptive edits by a'
.. ' particular user',
text = '${INTROFRAGMENT} to prevent ${VANDAL} from using it to make disruptive edits,'
.. ' such as abusing the'
.. ' {{[[Template:unblock|unblock]]}} template.',
explanation = 'If you cannot edit this user talk page and you need to'
.. ' make a change or leave a message, you can'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for edits to a protected page'
.. '|request an edit]],'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for reduction in protection level'
.. '|request unprotection]],'
.. ' [[Special:Userlogin|log in]],'
.. ' or [[Special:UserLogin/signup|create an account]].',
},
vandalism = {
description = 'For pages protected against'
.. ' [[Wikipedia:Vandalism|vandalism]]',
text = '${INTROFRAGMENT} due to [[Wikipedia:Vandalism|vandalism]].',
explanation = function (protectionObj, args)
local ret = ''
if protectionObj.level == 'sysop' then
ret = ret .. "This protection is '''not''' an endorsement of the"
.. ' ${CURRENTVERSION}. '
end
return ret .. '${EXPLANATIONBLURB}'
end,
tooltip = '${TOOLTIPFRAGMENT} due to vandalism',
}
},
move = {
dispute = {
description = 'For pages protected against page moves due to'
.. ' disputes over the page title',
explanation = "This protection is '''not''' an endorsement of the"
.. ' ${CURRENTVERSION}. ${EXPLANATIONBLURB}',
image = 'Move-protection-shackle.svg'
},
vandalism = {
description = 'For pages protected against'
.. ' [[Wikipedia:Vandalism#Page-move vandalism'
.. ' |page-move vandalism]]'
}
},
autoreview = {},
upload = {}
},
--------------------------------------------------------------------------------
--
-- GENERAL DATA TABLES
--
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- Protection blurbs
--------------------------------------------------------------------------------
-- This table produces the protection blurbs available with the
-- ${PROTECTIONBLURB} parameter. It is sorted by protection action and
-- protection level, and is checked by the module in the following order:
-- 1. page's protection action, page's protection level
-- 2. page's protection action, default protection level
-- 3. "edit" protection action, default protection level
--
-- It is possible to use banner parameters inside this table.
-- *required* - this table needs edit, move, autoreview and upload subtables.
protectionBlurbs = {
edit = {
default = 'This ${PAGETYPE} is currently [[Help:Protection|'
.. 'protected]] from editing',
autoconfirmed = 'Editing of this ${PAGETYPE} by [[Wikipedia:User access'
.. ' levels#New users|new]] or [[Wikipedia:User access levels#Unregistered'
.. ' users|unregistered]] users is currently [[Help:Protection|disabled]]',
extendedconfirmed = 'This ${PAGETYPE} is currently under extended confirmed protection',
},
move = {
default = 'This ${PAGETYPE} is currently [[Help:Protection|protected]]'
.. ' from [[Help:Moving a page|page moves]]'
},
autoreview = {
default = 'All edits made to this ${PAGETYPE} by'
.. ' [[Wikipedia:User access levels#New users|new]] or'
.. ' [[Wikipedia:User access levels#Unregistered users|unregistered]]'
.. ' users are currently'
.. ' [[Wikipedia:Pending changes|subject to review]]'
},
upload = {
default = 'Uploading new versions of this ${PAGETYPE} is currently disabled'
}
},
--------------------------------------------------------------------------------
-- Explanation blurbs
--------------------------------------------------------------------------------
-- This table produces the explanation blurbs available with the
-- ${EXPLANATIONBLURB} parameter. It is sorted by protection action,
-- protection level, and whether the page is a talk page or not. If the page is
-- a talk page it will have a talk key of "talk"; otherwise it will have a talk
-- key of "subject". The table is checked in the following order:
-- 1. page's protection action, page's protection level, page's talk key
-- 2. page's protection action, page's protection level, default talk key
-- 3. page's protection action, default protection level, page's talk key
-- 4. page's protection action, default protection level, default talk key
--
-- It is possible to use banner parameters inside this table.
-- *required* - this table needs edit, move, autoreview and upload subtables.
explanationBlurbs = {
edit = {
autoconfirmed = {
subject = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details. If you'
.. ' cannot edit this ${PAGETYPE} and you wish to make a change, you can'
.. ' ${EDITREQUEST}, discuss changes on the ${TALKPAGE},'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for reduction in protection level'
.. '|request unprotection]], [[Special:Userlogin|log in]], or'
.. ' [[Special:UserLogin/signup|create an account]].',
default = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details. If you'
.. ' cannot edit this ${PAGETYPE} and you wish to make a change, you can'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for reduction in protection level'
.. '|request unprotection]], [[Special:Userlogin|log in]], or'
.. ' [[Special:UserLogin/signup|create an account]].',
},
extendedconfirmed = {
default = 'Extended confirmed protection prevents edits from all unregistered editors'
.. ' and registered users with fewer than 30 days tenure and 500 edits.'
.. ' The [[Wikipedia:Protection policy#extended|policy on community use]]'
.. ' specifies that extended confirmed protection can be applied to combat'
.. ' disruption, if semi-protection has proven to be ineffective.'
.. ' Extended confirmed protection may also be applied to enforce'
.. ' [[Wikipedia:Arbitration Committee|arbitration sanctions]].'
.. ' Please discuss any changes on the ${TALKPAGE}; you may'
.. ' ${EDITREQUEST} to ask for uncontroversial changes supported by'
.. ' [[Wikipedia:Consensus|consensus]].'
},
default = {
subject = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' Please discuss any changes on the ${TALKPAGE}; you'
.. ' may ${EDITREQUEST} to ask an'
.. ' [[Wikipedia:Administrators|administrator]] to make an edit if it'
.. ' is [[Help:Minor edit#When to mark an edit as a minor edit'
.. '|uncontroversial]] or supported by [[Wikipedia:Consensus'
.. '|consensus]]. You may also [[Wikipedia:Requests for'
.. ' page protection#Current requests for reduction in protection level'
.. '|request]] that this page be unprotected.',
default = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' You may [[Wikipedia:Requests for page'
.. ' protection#Current requests for edits to a protected page|request an'
.. ' edit]] to this page, or [[Wikipedia:Requests for'
.. ' page protection#Current requests for reduction in protection level'
.. '|ask]] for it to be unprotected.'
}
},
move = {
default = {
subject = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' The page may still be edited but cannot be moved'
.. ' until unprotected. Please discuss any suggested moves on the'
.. ' ${TALKPAGE} or at [[Wikipedia:Requested moves]]. You can also'
.. ' [[Wikipedia:Requests for page protection|request]] that the page be'
.. ' unprotected.',
default = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' The page may still be edited but cannot be moved'
.. ' until unprotected. Please discuss any suggested moves at'
.. ' [[Wikipedia:Requested moves]]. You can also'
.. ' [[Wikipedia:Requests for page protection|request]] that the page be'
.. ' unprotected.'
}
},
autoreview = {
default = {
default = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' Edits to this ${PAGETYPE} by new and unregistered users'
.. ' will not be visible to readers until they are accepted by'
.. ' a reviewer. To avoid the need for your edits to be'
.. ' reviewed, you may'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for reduction in protection level'
.. '|request unprotection]], [[Special:Userlogin|log in]], or'
.. ' [[Special:UserLogin/signup|create an account]].'
},
},
upload = {
default = {
default = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' The page may still be edited but new versions of the file'
.. ' cannot be uploaded until it is unprotected. You can'
.. ' request that a new version be uploaded by using a'
.. ' [[Wikipedia:Edit requests|protected edit request]], or you'
.. ' can [[Wikipedia:Requests for page protection|request]]'
.. ' that the file be unprotected.'
}
}
},
--------------------------------------------------------------------------------
-- Protection levels
--------------------------------------------------------------------------------
-- This table provides the data for the ${PROTECTIONLEVEL} parameter, which
-- produces a short label for different protection levels. It is sorted by
-- protection action and protection level, and is checked in the following
-- order:
-- 1. page's protection action, page's protection level
-- 2. page's protection action, default protection level
-- 3. "edit" protection action, default protection level
--
-- It is possible to use banner parameters inside this table.
-- *required* - this table needs edit, move, autoreview and upload subtables.
protectionLevels = {
edit = {
default = 'protected',
templateeditor = 'template-protected',
extendedconfirmed = 'extended-protected',
autoconfirmed = 'semi-protected',
},
move = {
default = 'move-protected'
},
autoreview = {
},
upload = {
default = 'upload-protected'
}
},
--------------------------------------------------------------------------------
-- Images
--------------------------------------------------------------------------------
-- This table lists different padlock images for each protection action and
-- protection level. It is used if an image is not specified in any of the
-- banner data tables, and if the page does not satisfy the conditions for using
-- the ['image-filename-indef'] image. It is checked in the following order:
-- 1. page's protection action, page's protection level
-- 2. page's protection action, default protection level
images = {
edit = {
default = 'Full-protection-shackle.svg',
templateeditor = 'Template-protection-shackle.svg',
extendedconfirmed = 'Extended-protection-shackle.svg',
autoconfirmed = 'Semi-protection-shackle.svg'
},
move = {
default = 'Move-protection-shackle.svg',
},
autoreview = {
default = 'Pending-protection-shackle.svg'
},
upload = {
default = 'Upload-protection-shackle.svg'
}
},
-- Pages with a reason specified in this table will show the special "indef"
-- padlock, defined in the 'image-filename-indef' message, if no expiry is set.
indefImageReasons = {
template = true
},
--------------------------------------------------------------------------------
-- Image links
--------------------------------------------------------------------------------
-- This table provides the data for the ${IMAGELINK} parameter, which gets
-- the image link for small padlock icons based on the page's protection action
-- and protection level. It is checked in the following order:
-- 1. page's protection action, page's protection level
-- 2. page's protection action, default protection level
-- 3. "edit" protection action, default protection level
--
-- It is possible to use banner parameters inside this table.
-- *required* - this table needs edit, move, autoreview and upload subtables.
imageLinks = {
edit = {
default = 'Wikipedia:Protection policy#full',
templateeditor = 'Wikipedia:Protection policy#template',
extendedconfirmed = 'Wikipedia:Protection policy#extended',
autoconfirmed = 'Wikipedia:Protection policy#semi'
},
move = {
default = 'Wikipedia:Protection policy#move'
},
autoreview = {
default = 'Wikipedia:Protection policy#pending'
},
upload = {
default = 'Wikipedia:Protection policy#upload'
}
},
--------------------------------------------------------------------------------
-- Padlock indicator names
--------------------------------------------------------------------------------
-- This table provides the "name" attribute for the <indicator> extension tag
-- with which small padlock icons are generated. All indicator tags on a page
-- are displayed in alphabetical order based on this attribute, and with
-- indicator tags with duplicate names, the last tag on the page wins.
-- The attribute is chosen based on the protection action; table keys must be a
-- protection action name or the string "default".
padlockIndicatorNames = {
autoreview = 'pp-autoreview',
default = 'pp-default'
},
--------------------------------------------------------------------------------
-- Protection categories
--------------------------------------------------------------------------------
--[[
-- The protection categories are stored in the protectionCategories table.
-- Keys to this table are made up of the following strings:
--
-- 1. the expiry date
-- 2. the namespace
-- 3. the protection reason (e.g. "dispute" or "vandalism")
-- 4. the protection level (e.g. "sysop" or "autoconfirmed")
-- 5. the action (e.g. "edit" or "move")
--
-- When the module looks up a category in the table, first it will will check to
-- see a key exists that corresponds to all five parameters. For example, a
-- user page semi-protected from vandalism for two weeks would have the key
-- "temp-user-vandalism-autoconfirmed-edit". If no match is found, the module
-- changes the first part of the key to "all" and checks the table again. It
-- keeps checking increasingly generic key combinations until it finds the
-- field, or until it reaches the key "all-all-all-all-all".
--
-- The module uses a binary matrix to determine the order in which to search.
-- This is best demonstrated by a table. In this table, the "0" values
-- represent "all", and the "1" values represent the original data (e.g.
-- "indef" or "file" or "vandalism").
--
-- expiry namespace reason level action
-- order
-- 1 1 1 1 1 1
-- 2 0 1 1 1 1
-- 3 1 0 1 1 1
-- 4 0 0 1 1 1
-- 5 1 1 0 1 1
-- 6 0 1 0 1 1
-- 7 1 0 0 1 1
-- 8 0 0 0 1 1
-- 9 1 1 1 0 1
-- 10 0 1 1 0 1
-- 11 1 0 1 0 1
-- 12 0 0 1 0 1
-- 13 1 1 0 0 1
-- 14 0 1 0 0 1
-- 15 1 0 0 0 1
-- 16 0 0 0 0 1
-- 17 1 1 1 1 0
-- 18 0 1 1 1 0
-- 19 1 0 1 1 0
-- 20 0 0 1 1 0
-- 21 1 1 0 1 0
-- 22 0 1 0 1 0
-- 23 1 0 0 1 0
-- 24 0 0 0 1 0
-- 25 1 1 1 0 0
-- 26 0 1 1 0 0
-- 27 1 0 1 0 0
-- 28 0 0 1 0 0
-- 29 1 1 0 0 0
-- 30 0 1 0 0 0
-- 31 1 0 0 0 0
-- 32 0 0 0 0 0
--
-- In this scheme the action has the highest priority, as it is the last
-- to change, and the expiry has the least priority, as it changes the most.
-- The priorities of the expiry, the protection level and the action are
-- fixed, but the priorities of the reason and the namespace can be swapped
-- through the use of the cfg.bannerDataNamespaceHasPriority table.
--]]
-- If the reason specified to the template is listed in this table,
-- namespace data will take priority over reason data in the protectionCategories
-- table.
reasonsWithNamespacePriority = {
vandalism = true,
},
-- The string to use as a namespace key for the protectionCategories table for each
-- namespace number.
categoryNamespaceKeys = {
[ 2] = 'user',
[ 3] = 'user',
[ 4] = 'project',
[ 6] = 'file',
[ 8] = 'mediawiki',
[ 10] = 'template',
[ 12] = 'project',
[ 14] = 'category',
[100] = 'portal',
[828] = 'module',
},
protectionCategories = {
['all|all|all|all|all'] = 'Wikipedia fully protected pages',
['all|all|office|all|all'] = 'Wikipedia Office-protected pages',
['all|all|reset|all|all'] = 'Wikipedia Office-protected pages',
['all|all|dmca|all|all'] = 'Wikipedia Office-protected pages',
['all|all|mainpage|all|all'] = 'Wikipedia fully-protected main page files',
['all|all|all|extendedconfirmed|all'] = 'Wikipedia extended-confirmed-protected pages',
['all|all|ecp|extendedconfirmed|all'] = 'Wikipedia extended-confirmed-protected pages',
['all|template|all|all|edit'] = 'Wikipedia fully protected templates',
['all|all|all|autoconfirmed|edit'] = 'Wikipedia semi-protected pages',
['indef|all|all|autoconfirmed|edit'] = 'Wikipedia indefinitely semi-protected pages',
['all|all|blp|autoconfirmed|edit'] = 'Wikipedia indefinitely semi-protected biographies of living people',
['temp|all|blp|autoconfirmed|edit'] = 'Wikipedia temporarily semi-protected biographies of living people',
['all|all|dispute|autoconfirmed|edit'] = 'Wikipedia pages semi-protected due to dispute',
['all|all|sock|autoconfirmed|edit'] = 'Wikipedia pages semi-protected from banned users',
['all|all|vandalism|autoconfirmed|edit'] = 'Wikipedia pages semi-protected against vandalism',
['all|category|all|autoconfirmed|edit'] = 'Wikipedia semi-protected categories',
['all|file|all|autoconfirmed|edit'] = 'Wikipedia semi-protected files',
['all|portal|all|autoconfirmed|edit'] = 'Wikipedia semi-protected portals',
['all|project|all|autoconfirmed|edit'] = 'Wikipedia semi-protected project pages',
['all|talk|all|autoconfirmed|edit'] = 'Wikipedia semi-protected talk pages',
['all|template|all|autoconfirmed|edit'] = 'Wikipedia semi-protected templates',
['all|user|all|autoconfirmed|edit'] = 'Wikipedia semi-protected user and user talk pages',
['all|all|all|templateeditor|edit'] = 'Wikipedia template-protected pages other than templates and modules',
['all|template|all|templateeditor|edit'] = 'Wikipedia template-protected templates',
['all|template|all|templateeditor|move'] = 'Wikipedia template-protected templates', -- move-protected templates
['all|all|blp|sysop|edit'] = 'Wikipedia indefinitely protected biographies of living people',
['temp|all|blp|sysop|edit'] = 'Wikipedia temporarily protected biographies of living people',
['all|all|dispute|sysop|edit'] = 'Wikipedia pages protected due to dispute',
['all|all|sock|sysop|edit'] = 'Wikipedia pages protected from banned users',
['all|all|vandalism|sysop|edit'] = 'Wikipedia pages protected against vandalism',
['all|category|all|sysop|edit'] = 'Wikipedia fully protected categories',
['all|file|all|sysop|edit'] = 'Wikipedia fully-protected files',
['all|project|all|sysop|edit'] = 'Wikipedia fully-protected project pages',
['all|talk|all|sysop|edit'] = 'Wikipedia fully-protected talk pages',
['all|template|all|extendedconfirmed|edit'] = 'Wikipedia extended-confirmed-protected templates',
['all|template|all|sysop|edit'] = 'Wikipedia fully protected templates',
['all|user|all|sysop|edit'] = 'Wikipedia fully protected user and user talk pages',
['all|module|all|all|edit'] = 'Wikipedia fully-protected modules',
['all|module|all|templateeditor|edit'] = 'Wikipedia template-protected modules',
['all|module|all|extendedconfirmed|edit'] = 'Wikipedia extended-confirmed-protected modules',
['all|module|all|autoconfirmed|edit'] = 'Wikipedia semi-protected modules',
['all|all|all|sysop|move'] = 'Wikipedia move-protected pages',
['indef|all|all|sysop|move'] = 'Wikipedia indefinitely move-protected pages',
['all|all|dispute|sysop|move'] = 'Wikipedia pages move-protected due to dispute',
['all|all|vandalism|sysop|move'] = 'Wikipedia pages move-protected due to vandalism',
['all|portal|all|sysop|move'] = 'Wikipedia move-protected portals',
['all|project|all|sysop|move'] = 'Wikipedia move-protected project pages',
['all|talk|all|sysop|move'] = 'Wikipedia move-protected talk pages',
['all|template|all|sysop|move'] = 'Wikipedia move-protected templates',
['all|user|all|sysop|move'] = 'Wikipedia move-protected user and user talk pages',
['all|all|all|autoconfirmed|autoreview'] = 'Wikipedia pending changes protected pages',
['all|file|all|all|upload'] = 'Wikipedia upload-protected files',
},
--------------------------------------------------------------------------------
-- Expiry category config
--------------------------------------------------------------------------------
-- This table configures the expiry category behaviour for each protection
-- action.
-- * If set to true, setting that action will always categorise the page if
-- an expiry parameter is not set.
-- * If set to false, setting that action will never categorise the page.
-- * If set to nil, the module will categorise the page if:
-- 1) an expiry parameter is not set, and
-- 2) a reason is provided, and
-- 3) the specified reason is not blacklisted in the reasonsWithoutExpiryCheck
-- table.
expiryCheckActions = {
edit = nil,
move = false,
autoreview = true,
upload = false
},
reasonsWithoutExpiryCheck = {
blp = true,
template = true,
},
--------------------------------------------------------------------------------
-- Pagetypes
--------------------------------------------------------------------------------
-- This table produces the page types available with the ${PAGETYPE} parameter.
-- Keys are namespace numbers, or the string "default" for the default value.
pagetypes = {
[0] = 'article',
[6] = 'file',
[10] = 'template',
[14] = 'category',
[828] = 'module',
default = 'page'
},
--------------------------------------------------------------------------------
-- Strings marking indefinite protection
--------------------------------------------------------------------------------
-- This table contains values passed to the expiry parameter that mean the page
-- is protected indefinitely.
indefStrings = {
['indef'] = true,
['indefinite'] = true,
['indefinitely'] = true,
['infinite'] = true,
},
--------------------------------------------------------------------------------
-- Group hierarchy
--------------------------------------------------------------------------------
-- This table maps each group to all groups that have a superset of the original
-- group's page editing permissions.
hierarchy = {
sysop = {},
reviewer = {'sysop'},
filemover = {'sysop'},
templateeditor = {'sysop'},
extendedconfirmed = {'sysop'},
autoconfirmed = {'reviewer', 'filemover', 'templateeditor', 'extendedconfirmed'},
user = {'autoconfirmed'},
['*'] = {'user'}
},
--------------------------------------------------------------------------------
-- Wrapper templates and their default arguments
--------------------------------------------------------------------------------
-- This table contains wrapper templates used with the module, and their
-- default arguments. Templates specified in this table should contain the
-- following invocation, and no other template content:
--
-- {{#invoke:Protection banner|main}}
--
-- If other content is desired, it can be added between
-- <noinclude>...</noinclude> tags.
--
-- When a user calls one of these wrapper templates, they will use the
-- default arguments automatically. However, users can override any of the
-- arguments.
wrappers = {
['Template:Pp'] = {},
['Template:Pp-extended'] = {'ecp'},
['Template:Pp-blp'] = {'blp'},
-- we don't need Template:Pp-create
['Template:Pp-dispute'] = {'dispute'},
['Template:Pp-main-page'] = {'mainpage'},
['Template:Pp-move'] = {action = 'move', catonly = 'yes'},
['Template:Pp-move-dispute'] = {'dispute', action = 'move', catonly = 'yes'},
-- we don't need Template:Pp-move-indef
['Template:Pp-move-vandalism'] = {'vandalism', action = 'move', catonly = 'yes'},
['Template:Pp-office'] = {'office'},
['Template:Pp-office-dmca'] = {'dmca'},
['Template:Pp-pc'] = {action = 'autoreview', small = true},
['Template:Pp-pc1'] = {action = 'autoreview', small = true},
['Template:Pp-reset'] = {'reset'},
['Template:Pp-semi-indef'] = {small = true},
['Template:Pp-sock'] = {'sock'},
['Template:Pp-template'] = {'template', small = true},
['Template:Pp-upload'] = {action = 'upload'},
['Template:Pp-usertalk'] = {'usertalk'},
['Template:Pp-vandalism'] = {'vandalism'},
},
--------------------------------------------------------------------------------
--
-- MESSAGES
--
--------------------------------------------------------------------------------
msg = {
--------------------------------------------------------------------------------
-- Intro blurb and intro fragment
--------------------------------------------------------------------------------
-- These messages specify what is produced by the ${INTROBLURB} and
-- ${INTROFRAGMENT} parameters. If the protection is temporary they use the
-- intro-blurb-expiry or intro-fragment-expiry, and if not they use
-- intro-blurb-noexpiry or intro-fragment-noexpiry.
-- It is possible to use banner parameters in these messages.
['intro-blurb-expiry'] = '${PROTECTIONBLURB} until ${EXPIRY}.',
['intro-blurb-noexpiry'] = '${PROTECTIONBLURB}.',
['intro-fragment-expiry'] = '${PROTECTIONBLURB} until ${EXPIRY},',
['intro-fragment-noexpiry'] = '${PROTECTIONBLURB}',
--------------------------------------------------------------------------------
-- Tooltip blurb
--------------------------------------------------------------------------------
-- These messages specify what is produced by the ${TOOLTIPBLURB} parameter.
-- If the protection is temporary the tooltip-blurb-expiry message is used, and
-- if not the tooltip-blurb-noexpiry message is used.
-- It is possible to use banner parameters in these messages.
['tooltip-blurb-expiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL} until ${EXPIRY}.',
['tooltip-blurb-noexpiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL}.',
['tooltip-fragment-expiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL} until ${EXPIRY},',
['tooltip-fragment-noexpiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL}',
--------------------------------------------------------------------------------
-- Special explanation blurb
--------------------------------------------------------------------------------
-- An explanation blurb for pages that cannot be unprotected, e.g. for pages
-- in the MediaWiki namespace.
-- It is possible to use banner parameters in this message.
['explanation-blurb-nounprotect'] = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' Please discuss any changes on the ${TALKPAGE}; you'
.. ' may ${EDITREQUEST} to ask an'
.. ' [[Wikipedia:Administrators|administrator]] to make an edit if it'
.. ' is [[Help:Minor edit#When to mark an edit as a minor edit'
.. '|uncontroversial]] or supported by [[Wikipedia:Consensus'
.. '|consensus]].',
--------------------------------------------------------------------------------
-- Protection log display values
--------------------------------------------------------------------------------
-- These messages determine the display values for the protection log link
-- or the pending changes log link produced by the ${PROTECTIONLOG} parameter.
-- It is possible to use banner parameters in these messages.
['protection-log-display'] = 'protection log',
['pc-log-display'] = 'pending changes log',
--------------------------------------------------------------------------------
-- Current version display values
--------------------------------------------------------------------------------
-- These messages determine the display values for the page history link
-- or the move log link produced by the ${CURRENTVERSION} parameter.
-- It is possible to use banner parameters in these messages.
['current-version-move-display'] = 'current title',
['current-version-edit-display'] = 'current version',
--------------------------------------------------------------------------------
-- Talk page
--------------------------------------------------------------------------------
-- This message determines the display value of the talk page link produced
-- with the ${TALKPAGE} parameter.
-- It is possible to use banner parameters in this message.
['talk-page-link-display'] = 'talk page',
--------------------------------------------------------------------------------
-- Edit requests
--------------------------------------------------------------------------------
-- This message determines the display value of the edit request link produced
-- with the ${EDITREQUEST} parameter.
-- It is possible to use banner parameters in this message.
['edit-request-display'] = 'submit an edit request',
--------------------------------------------------------------------------------
-- Expiry date format
--------------------------------------------------------------------------------
-- This is the format for the blurb expiry date. It should be valid input for
-- the first parameter of the #time parser function.
['expiry-date-format'] = 'F j, Y "at" H:i e',
--------------------------------------------------------------------------------
-- Tracking categories
--------------------------------------------------------------------------------
-- These messages determine which tracking categories the module outputs.
['tracking-category-incorrect'] = 'Wikipedia pages with incorrect protection templates',
['tracking-category-template'] = 'Wikipedia template-protected pages other than templates and modules',
--------------------------------------------------------------------------------
-- Images
--------------------------------------------------------------------------------
-- These are images that are not defined by their protection action and protection level.
['image-filename-indef'] = 'Full-protection-shackle.svg',
['image-filename-default'] = 'Transparent.gif',
--------------------------------------------------------------------------------
-- End messages
--------------------------------------------------------------------------------
}
--------------------------------------------------------------------------------
-- End configuration
--------------------------------------------------------------------------------
}
7b4133071e798dbabff5c4e8628e5537a1d376e3
Module:Section link
828
81
154
153
2022-07-21T19:50:58Z
Wikiricky
1
1 revision imported
Scribunto
text/plain
-- This module implements {{section link}}.
require('Module:No globals');
local checkType = require('libraryUtil').checkType
local p = {}
local function makeSectionLink(page, section, display)
display = display or section
page = page or ''
-- MediaWiki doesn't allow these in `page`, so only need to do for `section`
if type(section) == 'string' then
section = string.gsub(section, "{", "{")
section = string.gsub(section, "}", "}")
end
return string.format('[[%s#%s|%s]]', page, section, display)
end
local function normalizeTitle(title)
title = mw.ustring.gsub(mw.ustring.gsub(title, "'", ""), '"', '')
title = mw.ustring.gsub(title, "%b<>", "")
return mw.title.new(title).prefixedText
end
function p._main(page, sections, options, title)
-- Validate input.
checkType('_main', 1, page, 'string', true)
checkType('_main', 3, options, 'table', true)
if sections == nil then
sections = {}
elseif type(sections) == 'string' then
sections = {sections}
elseif type(sections) ~= 'table' then
error(string.format(
"type error in argument #2 to '_main' " ..
"(string, table or nil expected, got %s)",
type(sections)
), 2)
end
options = options or {}
title = title or mw.title.getCurrentTitle()
-- Deal with blank page names elegantly
if page and not page:find('%S') then
page = nil
options.nopage = true
end
-- Make the link(s).
local isShowingPage = not options.nopage
if #sections <= 1 then
local linkPage = page or ''
local section = sections[1] or 'Notes'
local display = '§ ' .. section
if isShowingPage then
page = page or title.prefixedText
if options.display and options.display ~= '' then
if normalizeTitle(options.display) == normalizeTitle(page) then
display = options.display .. ' ' .. display
else
error(string.format(
'Display title "%s" was ignored since it is ' ..
"not equivalent to the page's actual title",
options.display
), 0)
end
else
display = page .. ' ' .. display
end
end
return makeSectionLink(linkPage, section, display)
else
-- Multiple sections. First, make a list of the links to display.
local ret = {}
for i, section in ipairs(sections) do
ret[i] = makeSectionLink(page, section)
end
-- Assemble the list of links into a string with mw.text.listToText.
-- We use the default separator for mw.text.listToText, but a custom
-- conjunction. There is also a special case conjunction if we only
-- have two links.
local conjunction
if #sections == 2 then
conjunction = '​ and '
else
conjunction = ', and '
end
ret = mw.text.listToText(ret, nil, conjunction)
-- Add the intro text.
local intro = '§§ '
if isShowingPage then
intro = (page or title.prefixedText) .. ' ' .. intro
end
ret = intro .. ret
return ret
end
end
function p.main(frame)
local yesno = require('Module:Yesno')
local args = require('Module:Arguments').getArgs(frame, {
wrappers = 'Template:Section link',
valueFunc = function (key, value)
value = value:match('^%s*(.-)%s*$') -- Trim whitespace
-- Allow blank first parameters, as the wikitext template does this.
if value ~= '' or key == 1 then
return value
end
end
})
for k, v in pairs(args) do -- replace underscores in the positional parameter values
if 'number' == type(k) then
if not yesno (args['keep-underscores']) then -- unless |keep-underscores=yes
args[k] = mw.uri.decode (v, 'WIKI'); -- percent-decode; replace underscores with space characters
else
args[k] = mw.uri.decode (v, 'PATH'); -- percent-decode; retain underscores
end
end
end
-- Sort the arguments.
local page
local sections, options = {}, {}
for k, v in pairs(args) do
if k == 1 then
-- Doing this in the loop because of a bug in [[Module:Arguments]]
-- when using pairs with deleted arguments.
page = mw.text.decode(v, true)
elseif type(k) == 'number' then
sections[k] = v
else
options[k] = v
end
end
options.nopage = yesno (options.nopage); -- make boolean
-- Extract section from page, if present
if page then
local p, s = page:match('^(.-)#(.*)$')
if p then page, sections[1] = p, s end
end
-- Compress the sections array.
local function compressArray(t)
local nums, ret = {}, {}
for num in pairs(t) do
nums[#nums + 1] = num
end
table.sort(nums)
for i, num in ipairs(nums) do
ret[i] = t[num]
end
return ret
end
sections = compressArray(sections)
return p._main(page, sections, options)
end
return p
712a4e62cbae4ef21220d701037b207aec105d45
Module:String
828
82
156
155
2022-07-21T19:50:59Z
Wikiricky
1
1 revision imported
Scribunto
text/plain
--[[
This module is intended to provide access to basic string functions.
Most of the functions provided here can be invoked with named parameters,
unnamed parameters, or a mixture. If named parameters are used, Mediawiki will
automatically remove any leading or trailing whitespace from the parameter.
Depending on the intended use, it may be advantageous to either preserve or
remove such whitespace.
Global options
ignore_errors: If set to 'true' or 1, any error condition will result in
an empty string being returned rather than an error message.
error_category: If an error occurs, specifies the name of a category to
include with the error message. The default category is
[Category:Errors reported by Module String].
no_category: If set to 'true' or 1, no category will be added if an error
is generated.
Unit tests for this module are available at Module:String/tests.
]]
local str = {}
--[[
len
This function returns the length of the target string.
Usage:
{{#invoke:String|len|target_string|}}
OR
{{#invoke:String|len|s=target_string}}
Parameters
s: The string whose length to report
If invoked using named parameters, Mediawiki will automatically remove any leading or
trailing whitespace from the target string.
]]
function str.len( frame )
local new_args = str._getParameters( frame.args, {'s'} )
local s = new_args['s'] or ''
return mw.ustring.len( s )
end
--[[
sub
This function returns a substring of the target string at specified indices.
Usage:
{{#invoke:String|sub|target_string|start_index|end_index}}
OR
{{#invoke:String|sub|s=target_string|i=start_index|j=end_index}}
Parameters
s: The string to return a subset of
i: The fist index of the substring to return, defaults to 1.
j: The last index of the string to return, defaults to the last character.
The first character of the string is assigned an index of 1. If either i or j
is a negative value, it is interpreted the same as selecting a character by
counting from the end of the string. Hence, a value of -1 is the same as
selecting the last character of the string.
If the requested indices are out of range for the given string, an error is
reported.
]]
function str.sub( frame )
local new_args = str._getParameters( frame.args, { 's', 'i', 'j' } )
local s = new_args['s'] or ''
local i = tonumber( new_args['i'] ) or 1
local j = tonumber( new_args['j'] ) or -1
local len = mw.ustring.len( s )
-- Convert negatives for range checking
if i < 0 then
i = len + i + 1
end
if j < 0 then
j = len + j + 1
end
if i > len or j > len or i < 1 or j < 1 then
return str._error( 'String subset index out of range' )
end
if j < i then
return str._error( 'String subset indices out of order' )
end
return mw.ustring.sub( s, i, j )
end
--[[
This function implements that features of {{str sub old}} and is kept in order
to maintain these older templates.
]]
function str.sublength( frame )
local i = tonumber( frame.args.i ) or 0
local len = tonumber( frame.args.len )
return mw.ustring.sub( frame.args.s, i + 1, len and ( i + len ) )
end
--[[
_match
This function returns a substring from the source string that matches a
specified pattern. It is exported for use in other modules
Usage:
strmatch = require("Module:String")._match
sresult = strmatch( s, pattern, start, match, plain, nomatch )
Parameters
s: The string to search
pattern: The pattern or string to find within the string
start: The index within the source string to start the search. The first
character of the string has index 1. Defaults to 1.
match: In some cases it may be possible to make multiple matches on a single
string. This specifies which match to return, where the first match is
match= 1. If a negative number is specified then a match is returned
counting from the last match. Hence match = -1 is the same as requesting
the last match. Defaults to 1.
plain: A flag indicating that the pattern should be understood as plain
text. Defaults to false.
nomatch: If no match is found, output the "nomatch" value rather than an error.
For information on constructing Lua patterns, a form of [regular expression], see:
* http://www.lua.org/manual/5.1/manual.html#5.4.1
* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns
* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Ustring_patterns
]]
-- This sub-routine is exported for use in other modules
function str._match( s, pattern, start, match_index, plain_flag, nomatch )
if s == '' then
return str._error( 'Target string is empty' )
end
if pattern == '' then
return str._error( 'Pattern string is empty' )
end
start = tonumber(start) or 1
if math.abs(start) < 1 or math.abs(start) > mw.ustring.len( s ) then
return str._error( 'Requested start is out of range' )
end
if match_index == 0 then
return str._error( 'Match index is out of range' )
end
if plain_flag then
pattern = str._escapePattern( pattern )
end
local result
if match_index == 1 then
-- Find first match is simple case
result = mw.ustring.match( s, pattern, start )
else
if start > 1 then
s = mw.ustring.sub( s, start )
end
local iterator = mw.ustring.gmatch(s, pattern)
if match_index > 0 then
-- Forward search
for w in iterator do
match_index = match_index - 1
if match_index == 0 then
result = w
break
end
end
else
-- Reverse search
local result_table = {}
local count = 1
for w in iterator do
result_table[count] = w
count = count + 1
end
result = result_table[ count + match_index ]
end
end
if result == nil then
if nomatch == nil then
return str._error( 'Match not found' )
else
return nomatch
end
else
return result
end
end
--[[
match
This function returns a substring from the source string that matches a
specified pattern.
Usage:
{{#invoke:String|match|source_string|pattern_string|start_index|match_number|plain_flag|nomatch_output}}
OR
{{#invoke:String|match|s=source_string|pattern=pattern_string|start=start_index
|match=match_number|plain=plain_flag|nomatch=nomatch_output}}
Parameters
s: The string to search
pattern: The pattern or string to find within the string
start: The index within the source string to start the search. The first
character of the string has index 1. Defaults to 1.
match: In some cases it may be possible to make multiple matches on a single
string. This specifies which match to return, where the first match is
match= 1. If a negative number is specified then a match is returned
counting from the last match. Hence match = -1 is the same as requesting
the last match. Defaults to 1.
plain: A flag indicating that the pattern should be understood as plain
text. Defaults to false.
nomatch: If no match is found, output the "nomatch" value rather than an error.
If invoked using named parameters, Mediawiki will automatically remove any leading or
trailing whitespace from each string. In some circumstances this is desirable, in
other cases one may want to preserve the whitespace.
If the match_number or start_index are out of range for the string being queried, then
this function generates an error. An error is also generated if no match is found.
If one adds the parameter ignore_errors=true, then the error will be suppressed and
an empty string will be returned on any failure.
For information on constructing Lua patterns, a form of [regular expression], see:
* http://www.lua.org/manual/5.1/manual.html#5.4.1
* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns
* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Ustring_patterns
]]
-- This is the entry point for #invoke:String|match
function str.match( frame )
local new_args = str._getParameters( frame.args, {'s', 'pattern', 'start', 'match', 'plain', 'nomatch'} )
local s = new_args['s'] or ''
local start = tonumber( new_args['start'] ) or 1
local plain_flag = str._getBoolean( new_args['plain'] or false )
local pattern = new_args['pattern'] or ''
local match_index = math.floor( tonumber(new_args['match']) or 1 )
local nomatch = new_args['nomatch']
return str._match( s, pattern, start, match_index, plain_flag, nomatch )
end
--[[
pos
This function returns a single character from the target string at position pos.
Usage:
{{#invoke:String|pos|target_string|index_value}}
OR
{{#invoke:String|pos|target=target_string|pos=index_value}}
Parameters
target: The string to search
pos: The index for the character to return
If invoked using named parameters, Mediawiki will automatically remove any leading or
trailing whitespace from the target string. In some circumstances this is desirable, in
other cases one may want to preserve the whitespace.
The first character has an index value of 1.
If one requests a negative value, this function will select a character by counting backwards
from the end of the string. In other words pos = -1 is the same as asking for the last character.
A requested value of zero, or a value greater than the length of the string returns an error.
]]
function str.pos( frame )
local new_args = str._getParameters( frame.args, {'target', 'pos'} )
local target_str = new_args['target'] or ''
local pos = tonumber( new_args['pos'] ) or 0
if pos == 0 or math.abs(pos) > mw.ustring.len( target_str ) then
return str._error( 'String index out of range' )
end
return mw.ustring.sub( target_str, pos, pos )
end
--[[
str_find
This function duplicates the behavior of {{str_find}}, including all of its quirks.
This is provided in order to support existing templates, but is NOT RECOMMENDED for
new code and templates. New code is recommended to use the "find" function instead.
Returns the first index in "source" that is a match to "target". Indexing is 1-based,
and the function returns -1 if the "target" string is not present in "source".
Important Note: If the "target" string is empty / missing, this function returns a
value of "1", which is generally unexpected behavior, and must be accounted for
separatetly.
]]
function str.str_find( frame )
local new_args = str._getParameters( frame.args, {'source', 'target'} )
local source_str = new_args['source'] or ''
local target_str = new_args['target'] or ''
if target_str == '' then
return 1
end
local start = mw.ustring.find( source_str, target_str, 1, true )
if start == nil then
start = -1
end
return start
end
--[[
find
This function allows one to search for a target string or pattern within another
string.
Usage:
{{#invoke:String|find|source_str|target_string|start_index|plain_flag}}
OR
{{#invoke:String|find|source=source_str|target=target_str|start=start_index|plain=plain_flag}}
Parameters
source: The string to search
target: The string or pattern to find within source
start: The index within the source string to start the search, defaults to 1
plain: Boolean flag indicating that target should be understood as plain
text and not as a Lua style regular expression, defaults to true
If invoked using named parameters, Mediawiki will automatically remove any leading or
trailing whitespace from the parameter. In some circumstances this is desirable, in
other cases one may want to preserve the whitespace.
This function returns the first index >= "start" where "target" can be found
within "source". Indices are 1-based. If "target" is not found, then this
function returns 0. If either "source" or "target" are missing / empty, this
function also returns 0.
This function should be safe for UTF-8 strings.
]]
function str.find( frame )
local new_args = str._getParameters( frame.args, {'source', 'target', 'start', 'plain' } )
local source_str = new_args['source'] or ''
local pattern = new_args['target'] or ''
local start_pos = tonumber(new_args['start']) or 1
local plain = new_args['plain'] or true
if source_str == '' or pattern == '' then
return 0
end
plain = str._getBoolean( plain )
local start = mw.ustring.find( source_str, pattern, start_pos, plain )
if start == nil then
start = 0
end
return start
end
--[[
replace
This function allows one to replace a target string or pattern within another
string.
Usage:
{{#invoke:String|replace|source_str|pattern_string|replace_string|replacement_count|plain_flag}}
OR
{{#invoke:String|replace|source=source_string|pattern=pattern_string|replace=replace_string|
count=replacement_count|plain=plain_flag}}
Parameters
source: The string to search
pattern: The string or pattern to find within source
replace: The replacement text
count: The number of occurences to replace, defaults to all.
plain: Boolean flag indicating that pattern should be understood as plain
text and not as a Lua style regular expression, defaults to true
]]
function str.replace( frame )
local new_args = str._getParameters( frame.args, {'source', 'pattern', 'replace', 'count', 'plain' } )
local source_str = new_args['source'] or ''
local pattern = new_args['pattern'] or ''
local replace = new_args['replace'] or ''
local count = tonumber( new_args['count'] )
local plain = new_args['plain'] or true
if source_str == '' or pattern == '' then
return source_str
end
plain = str._getBoolean( plain )
if plain then
pattern = str._escapePattern( pattern )
replace = mw.ustring.gsub( replace, "%%", "%%%%" ) --Only need to escape replacement sequences.
end
local result
if count ~= nil then
result = mw.ustring.gsub( source_str, pattern, replace, count )
else
result = mw.ustring.gsub( source_str, pattern, replace )
end
return result
end
--[[
simple function to pipe string.rep to templates.
]]
function str.rep( frame )
local repetitions = tonumber( frame.args[2] )
if not repetitions then
return str._error( 'function rep expects a number as second parameter, received "' .. ( frame.args[2] or '' ) .. '"' )
end
return string.rep( frame.args[1] or '', repetitions )
end
--[[
escapePattern
This function escapes special characters from a Lua string pattern. See [1]
for details on how patterns work.
[1] https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns
Usage:
{{#invoke:String|escapePattern|pattern_string}}
Parameters
pattern_string: The pattern string to escape.
]]
function str.escapePattern( frame )
local pattern_str = frame.args[1]
if not pattern_str then
return str._error( 'No pattern string specified' )
end
local result = str._escapePattern( pattern_str )
return result
end
--[[
count
This function counts the number of occurrences of one string in another.
]]
function str.count(frame)
local args = str._getParameters(frame.args, {'source', 'pattern', 'plain'})
local source = args.source or ''
local pattern = args.pattern or ''
local plain = str._getBoolean(args.plain or true)
if plain then
pattern = str._escapePattern(pattern)
end
local _, count = mw.ustring.gsub(source, pattern, '')
return count
end
--[[
endswith
This function determines whether a string ends with another string.
]]
function str.endswith(frame)
local args = str._getParameters(frame.args, {'source', 'pattern'})
local source = args.source or ''
local pattern = args.pattern or ''
if pattern == '' then
-- All strings end with the empty string.
return "yes"
end
if mw.ustring.sub(source, -mw.ustring.len(pattern), -1) == pattern then
return "yes"
else
return ""
end
end
--[[
join
Join all non empty arguments together; the first argument is the separator.
Usage:
{{#invoke:String|join|sep|one|two|three}}
]]
function str.join(frame)
local args = {}
local sep
for _, v in ipairs( frame.args ) do
if sep then
if v ~= '' then
table.insert(args, v)
end
else
sep = v
end
end
return table.concat( args, sep or '' )
end
--[[
Helper function that populates the argument list given that user may need to use a mix of
named and unnamed parameters. This is relevant because named parameters are not
identical to unnamed parameters due to string trimming, and when dealing with strings
we sometimes want to either preserve or remove that whitespace depending on the application.
]]
function str._getParameters( frame_args, arg_list )
local new_args = {}
local index = 1
local value
for _, arg in ipairs( arg_list ) do
value = frame_args[arg]
if value == nil then
value = frame_args[index]
index = index + 1
end
new_args[arg] = value
end
return new_args
end
--[[
Helper function to handle error messages.
]]
function str._error( error_str )
local frame = mw.getCurrentFrame()
local error_category = frame.args.error_category or 'Errors reported by Module String'
local ignore_errors = frame.args.ignore_errors or false
local no_category = frame.args.no_category or false
if str._getBoolean(ignore_errors) then
return ''
end
local error_str = '<strong class="error">String Module Error: ' .. error_str .. '</strong>'
if error_category ~= '' and not str._getBoolean( no_category ) then
error_str = '[[Category:' .. error_category .. ']]' .. error_str
end
return error_str
end
--[[
Helper Function to interpret boolean strings
]]
function str._getBoolean( boolean_str )
local boolean_value
if type( boolean_str ) == 'string' then
boolean_str = boolean_str:lower()
if boolean_str == 'false' or boolean_str == 'no' or boolean_str == '0'
or boolean_str == '' then
boolean_value = false
else
boolean_value = true
end
elseif type( boolean_str ) == 'boolean' then
boolean_value = boolean_str
else
error( 'No boolean value found' )
end
return boolean_value
end
--[[
Helper function that escapes all pattern characters so that they will be treated
as plain text.
]]
function str._escapePattern( pattern_str )
return mw.ustring.gsub( pattern_str, "([%(%)%.%%%+%-%*%?%[%^%$%]])", "%%%1" )
end
return str
6df794dd52434e0f6a372c9918f5a9dedd15f579
Module:TNT
828
83
158
157
2022-07-21T19:50:59Z
Wikiricky
1
1 revision imported
Scribunto
text/plain
--
-- INTRO: (!!! DO NOT RENAME THIS PAGE !!!)
-- This module allows any template or module to be copy/pasted between
-- wikis without any translation changes. All translation text is stored
-- in the global Data:*.tab pages on Commons, and used everywhere.
--
-- SEE: https://www.mediawiki.org/wiki/Multilingual_Templates_and_Modules
--
-- ATTENTION:
-- Please do NOT rename this module - it has to be identical on all wikis.
-- This code is maintained at https://www.mediawiki.org/wiki/Module:TNT
-- Please do not modify it anywhere else, as it may get copied and override your changes.
-- Suggestions can be made at https://www.mediawiki.org/wiki/Module_talk:TNT
--
-- DESCRIPTION:
-- The "msg" function uses a Commons dataset to translate a message
-- with a given key (e.g. source-table), plus optional arguments
-- to the wiki markup in the current content language.
-- Use lang=xx to set language. Example:
--
-- {{#invoke:TNT | msg
-- | I18n/Template:Graphs.tab <!-- https://commons.wikimedia.org/wiki/Data:I18n/Template:Graphs.tab -->
-- | source-table <!-- uses a translation message with id = "source-table" -->
-- | param1 }} <!-- optional parameter -->
--
--
-- The "doc" function will generate the <templatedata> parameter documentation for templates.
-- This way all template parameters can be stored and localized in a single Commons dataset.
-- NOTE: "doc" assumes that all documentation is located in Data:Templatedata/* on Commons.
--
-- {{#invoke:TNT | doc | Graph:Lines }}
-- uses https://commons.wikimedia.org/wiki/Data:Templatedata/Graph:Lines.tab
-- if the current page is Template:Graph:Lines/doc
--
local p = {}
local i18nDataset = 'I18n/Module:TNT.tab'
-- Forward declaration of the local functions
local sanitizeDataset, loadData, link, formatMessage
function p.msg(frame)
local dataset, id
local params = {}
local lang = nil
for k, v in pairs(frame.args) do
if k == 1 then
dataset = mw.text.trim(v)
elseif k == 2 then
id = mw.text.trim(v)
elseif type(k) == 'number' then
table.insert(params, mw.text.trim(v))
elseif k == 'lang' and v ~= '_' then
lang = mw.text.trim(v)
end
end
return formatMessage(dataset, id, params, lang)
end
-- Identical to p.msg() above, but used from other lua modules
-- Parameters: name of dataset, message key, optional arguments
-- Example with 2 params: format('I18n/Module:TNT', 'error_bad_msgkey', 'my-key', 'my-dataset')
function p.format(dataset, key, ...)
local checkType = require('libraryUtil').checkType
checkType('format', 1, dataset, 'string')
checkType('format', 2, key, 'string')
return formatMessage(dataset, key, {...})
end
-- Identical to p.msg() above, but used from other lua modules with the language param
-- Parameters: language code, name of dataset, message key, optional arguments
-- Example with 2 params: formatInLanguage('es', I18n/Module:TNT', 'error_bad_msgkey', 'my-key', 'my-dataset')
function p.formatInLanguage(lang, dataset, key, ...)
local checkType = require('libraryUtil').checkType
checkType('formatInLanguage', 1, lang, 'string')
checkType('formatInLanguage', 2, dataset, 'string')
checkType('formatInLanguage', 3, key, 'string')
return formatMessage(dataset, key, {...}, lang)
end
-- Obsolete function that adds a 'c:' prefix to the first param.
-- "Sandbox/Sample.tab" -> 'c:Data:Sandbox/Sample.tab'
function p.link(frame)
return link(frame.args[1])
end
function p.doc(frame)
local dataset = 'Templatedata/' .. sanitizeDataset(frame.args[1])
return frame:extensionTag('templatedata', p.getTemplateData(dataset)) ..
formatMessage(i18nDataset, 'edit_doc', {link(dataset)})
end
function p.getTemplateData(dataset)
-- TODO: add '_' parameter once lua starts reindexing properly for "all" languages
local data = loadData(dataset)
local names = {}
for _, field in pairs(data.schema.fields) do
table.insert(names, field.name)
end
local params = {}
local paramOrder = {}
for _, row in pairs(data.data) do
local newVal = {}
local name = nil
for pos, val in pairs(row) do
local columnName = names[pos]
if columnName == 'name' then
name = val
else
newVal[columnName] = val
end
end
if name then
params[name] = newVal
table.insert(paramOrder, name)
end
end
-- Work around json encoding treating {"1":{...}} as an [{...}]
params['zzz123']=''
local json = mw.text.jsonEncode({
params=params,
paramOrder=paramOrder,
description=data.description
})
json = string.gsub(json,'"zzz123":"",?', "")
return json
end
-- Local functions
sanitizeDataset = function(dataset)
if not dataset then
return nil
end
dataset = mw.text.trim(dataset)
if dataset == '' then
return nil
elseif string.sub(dataset,-4) ~= '.tab' then
return dataset .. '.tab'
else
return dataset
end
end
loadData = function(dataset, lang)
dataset = sanitizeDataset(dataset)
if not dataset then
error(formatMessage(i18nDataset, 'error_no_dataset', {}))
end
-- Give helpful error to thirdparties who try and copy this module.
if not mw.ext or not mw.ext.data or not mw.ext.data.get then
error('Missing JsonConfig extension; Cannot load https://commons.wikimedia.org/wiki/Data:' .. dataset)
end
local data = mw.ext.data.get(dataset, lang)
if data == false then
if dataset == i18nDataset then
-- Prevent cyclical calls
error('Missing Commons dataset ' .. i18nDataset)
else
error(formatMessage(i18nDataset, 'error_bad_dataset', {link(dataset)}))
end
end
return data
end
-- Given a dataset name, convert it to a title with the 'commons:data:' prefix
link = function(dataset)
return 'c:Data:' .. mw.text.trim(dataset or '')
end
formatMessage = function(dataset, key, params, lang)
for _, row in pairs(loadData(dataset, lang).data) do
local id, msg = unpack(row)
if id == key then
local result = mw.message.newRawMessage(msg, unpack(params or {}))
return result:plain()
end
end
if dataset == i18nDataset then
-- Prevent cyclical calls
error('Invalid message key "' .. key .. '"')
else
error(formatMessage(i18nDataset, 'error_bad_msgkey', {key, link(dataset)}))
end
end
return p
9d0d10e54abd232c806dcabccaf03e52858634a1
Module:TableTools
828
84
160
159
2022-07-21T19:50:59Z
Wikiricky
1
1 revision imported
Scribunto
text/plain
------------------------------------------------------------------------------------
-- TableTools --
-- --
-- This module includes a number of functions for dealing with Lua tables. --
-- It is a meta-module, meant to be called from other Lua modules, and should not --
-- be called directly from #invoke. --
------------------------------------------------------------------------------------
local libraryUtil = require('libraryUtil')
local p = {}
-- Define often-used variables and functions.
local floor = math.floor
local infinity = math.huge
local checkType = libraryUtil.checkType
local checkTypeMulti = libraryUtil.checkTypeMulti
------------------------------------------------------------------------------------
-- isPositiveInteger
--
-- This function returns true if the given value is a positive integer, and false
-- if not. Although it doesn't operate on tables, it is included here as it is
-- useful for determining whether a given table key is in the array part or the
-- hash part of a table.
------------------------------------------------------------------------------------
function p.isPositiveInteger(v)
return type(v) == 'number' and v >= 1 and floor(v) == v and v < infinity
end
------------------------------------------------------------------------------------
-- isNan
--
-- This function returns true if the given number is a NaN value, and false if
-- not. Although it doesn't operate on tables, it is included here as it is useful
-- for determining whether a value can be a valid table key. Lua will generate an
-- error if a NaN is used as a table key.
------------------------------------------------------------------------------------
function p.isNan(v)
return type(v) == 'number' and v ~= v
end
------------------------------------------------------------------------------------
-- shallowClone
--
-- This returns a clone of a table. The value returned is a new table, but all
-- subtables and functions are shared. Metamethods are respected, but the returned
-- table will have no metatable of its own.
------------------------------------------------------------------------------------
function p.shallowClone(t)
checkType('shallowClone', 1, t, 'table')
local ret = {}
for k, v in pairs(t) do
ret[k] = v
end
return ret
end
------------------------------------------------------------------------------------
-- removeDuplicates
--
-- This removes duplicate values from an array. Non-positive-integer keys are
-- ignored. The earliest value is kept, and all subsequent duplicate values are
-- removed, but otherwise the array order is unchanged.
------------------------------------------------------------------------------------
function p.removeDuplicates(arr)
checkType('removeDuplicates', 1, arr, 'table')
local isNan = p.isNan
local ret, exists = {}, {}
for _, v in ipairs(arr) do
if isNan(v) then
-- NaNs can't be table keys, and they are also unique, so we don't need to check existence.
ret[#ret + 1] = v
else
if not exists[v] then
ret[#ret + 1] = v
exists[v] = true
end
end
end
return ret
end
------------------------------------------------------------------------------------
-- numKeys
--
-- This takes a table and returns an array containing the numbers of any numerical
-- keys that have non-nil values, sorted in numerical order.
------------------------------------------------------------------------------------
function p.numKeys(t)
checkType('numKeys', 1, t, 'table')
local isPositiveInteger = p.isPositiveInteger
local nums = {}
for k in pairs(t) do
if isPositiveInteger(k) then
nums[#nums + 1] = k
end
end
table.sort(nums)
return nums
end
------------------------------------------------------------------------------------
-- affixNums
--
-- This takes a table and returns an array containing the numbers of keys with the
-- specified prefix and suffix. For example, for the table
-- {a1 = 'foo', a3 = 'bar', a6 = 'baz'} and the prefix "a", affixNums will return
-- {1, 3, 6}.
------------------------------------------------------------------------------------
function p.affixNums(t, prefix, suffix)
checkType('affixNums', 1, t, 'table')
checkType('affixNums', 2, prefix, 'string', true)
checkType('affixNums', 3, suffix, 'string', true)
local function cleanPattern(s)
-- Cleans a pattern so that the magic characters ()%.[]*+-?^$ are interpreted literally.
return s:gsub('([%(%)%%%.%[%]%*%+%-%?%^%$])', '%%%1')
end
prefix = prefix or ''
suffix = suffix or ''
prefix = cleanPattern(prefix)
suffix = cleanPattern(suffix)
local pattern = '^' .. prefix .. '([1-9]%d*)' .. suffix .. '$'
local nums = {}
for k in pairs(t) do
if type(k) == 'string' then
local num = mw.ustring.match(k, pattern)
if num then
nums[#nums + 1] = tonumber(num)
end
end
end
table.sort(nums)
return nums
end
------------------------------------------------------------------------------------
-- numData
--
-- Given a table with keys like {"foo1", "bar1", "foo2", "baz2"}, returns a table
-- of subtables in the format
-- {[1] = {foo = 'text', bar = 'text'}, [2] = {foo = 'text', baz = 'text'}}.
-- Keys that don't end with an integer are stored in a subtable named "other". The
-- compress option compresses the table so that it can be iterated over with
-- ipairs.
------------------------------------------------------------------------------------
function p.numData(t, compress)
checkType('numData', 1, t, 'table')
checkType('numData', 2, compress, 'boolean', true)
local ret = {}
for k, v in pairs(t) do
local prefix, num = mw.ustring.match(tostring(k), '^([^0-9]*)([1-9][0-9]*)$')
if num then
num = tonumber(num)
local subtable = ret[num] or {}
if prefix == '' then
-- Positional parameters match the blank string; put them at the start of the subtable instead.
prefix = 1
end
subtable[prefix] = v
ret[num] = subtable
else
local subtable = ret.other or {}
subtable[k] = v
ret.other = subtable
end
end
if compress then
local other = ret.other
ret = p.compressSparseArray(ret)
ret.other = other
end
return ret
end
------------------------------------------------------------------------------------
-- compressSparseArray
--
-- This takes an array with one or more nil values, and removes the nil values
-- while preserving the order, so that the array can be safely traversed with
-- ipairs.
------------------------------------------------------------------------------------
function p.compressSparseArray(t)
checkType('compressSparseArray', 1, t, 'table')
local ret = {}
local nums = p.numKeys(t)
for _, num in ipairs(nums) do
ret[#ret + 1] = t[num]
end
return ret
end
------------------------------------------------------------------------------------
-- sparseIpairs
--
-- This is an iterator for sparse arrays. It can be used like ipairs, but can
-- handle nil values.
------------------------------------------------------------------------------------
function p.sparseIpairs(t)
checkType('sparseIpairs', 1, t, 'table')
local nums = p.numKeys(t)
local i = 0
local lim = #nums
return function ()
i = i + 1
if i <= lim then
local key = nums[i]
return key, t[key]
else
return nil, nil
end
end
end
------------------------------------------------------------------------------------
-- size
--
-- This returns the size of a key/value pair table. It will also work on arrays,
-- but for arrays it is more efficient to use the # operator.
------------------------------------------------------------------------------------
function p.size(t)
checkType('size', 1, t, 'table')
local i = 0
for _ in pairs(t) do
i = i + 1
end
return i
end
local function defaultKeySort(item1, item2)
-- "number" < "string", so numbers will be sorted before strings.
local type1, type2 = type(item1), type(item2)
if type1 ~= type2 then
return type1 < type2
elseif type1 == 'table' or type1 == 'boolean' or type1 == 'function' then
return tostring(item1) < tostring(item2)
else
return item1 < item2
end
end
------------------------------------------------------------------------------------
-- keysToList
--
-- Returns an array of the keys in a table, sorted using either a default
-- comparison function or a custom keySort function.
------------------------------------------------------------------------------------
function p.keysToList(t, keySort, checked)
if not checked then
checkType('keysToList', 1, t, 'table')
checkTypeMulti('keysToList', 2, keySort, {'function', 'boolean', 'nil'})
end
local arr = {}
local index = 1
for k in pairs(t) do
arr[index] = k
index = index + 1
end
if keySort ~= false then
keySort = type(keySort) == 'function' and keySort or defaultKeySort
table.sort(arr, keySort)
end
return arr
end
------------------------------------------------------------------------------------
-- sortedPairs
--
-- Iterates through a table, with the keys sorted using the keysToList function.
-- If there are only numerical keys, sparseIpairs is probably more efficient.
------------------------------------------------------------------------------------
function p.sortedPairs(t, keySort)
checkType('sortedPairs', 1, t, 'table')
checkType('sortedPairs', 2, keySort, 'function', true)
local arr = p.keysToList(t, keySort, true)
local i = 0
return function ()
i = i + 1
local key = arr[i]
if key ~= nil then
return key, t[key]
else
return nil, nil
end
end
end
------------------------------------------------------------------------------------
-- isArray
--
-- Returns true if the given value is a table and all keys are consecutive
-- integers starting at 1.
------------------------------------------------------------------------------------
function p.isArray(v)
if type(v) ~= 'table' then
return false
end
local i = 0
for _ in pairs(v) do
i = i + 1
if v[i] == nil then
return false
end
end
return true
end
------------------------------------------------------------------------------------
-- isArrayLike
--
-- Returns true if the given value is iterable and all keys are consecutive
-- integers starting at 1.
------------------------------------------------------------------------------------
function p.isArrayLike(v)
if not pcall(pairs, v) then
return false
end
local i = 0
for _ in pairs(v) do
i = i + 1
if v[i] == nil then
return false
end
end
return true
end
------------------------------------------------------------------------------------
-- invert
--
-- Transposes the keys and values in an array. For example, {"a", "b", "c"} ->
-- {a = 1, b = 2, c = 3}. Duplicates are not supported (result values refer to
-- the index of the last duplicate) and NaN values are ignored.
------------------------------------------------------------------------------------
function p.invert(arr)
checkType("invert", 1, arr, "table")
local isNan = p.isNan
local map = {}
for i, v in ipairs(arr) do
if not isNan(v) then
map[v] = i
end
end
return map
end
------------------------------------------------------------------------------------
-- listToSet
--
-- Creates a set from the array part of the table. Indexing the set by any of the
-- values of the array returns true. For example, {"a", "b", "c"} ->
-- {a = true, b = true, c = true}. NaN values are ignored as Lua considers them
-- never equal to any value (including other NaNs or even themselves).
------------------------------------------------------------------------------------
function p.listToSet(arr)
checkType("listToSet", 1, arr, "table")
local isNan = p.isNan
local set = {}
for _, v in ipairs(arr) do
if not isNan(v) then
set[v] = true
end
end
return set
end
------------------------------------------------------------------------------------
-- deepCopy
--
-- Recursive deep copy function. Preserves identities of subtables.
------------------------------------------------------------------------------------
local function _deepCopy(orig, includeMetatable, already_seen)
-- Stores copies of tables indexed by the original table.
already_seen = already_seen or {}
local copy = already_seen[orig]
if copy ~= nil then
return copy
end
if type(orig) == 'table' then
copy = {}
for orig_key, orig_value in pairs(orig) do
copy[_deepCopy(orig_key, includeMetatable, already_seen)] = _deepCopy(orig_value, includeMetatable, already_seen)
end
already_seen[orig] = copy
if includeMetatable then
local mt = getmetatable(orig)
if mt ~= nil then
local mt_copy = _deepCopy(mt, includeMetatable, already_seen)
setmetatable(copy, mt_copy)
already_seen[mt] = mt_copy
end
end
else -- number, string, boolean, etc
copy = orig
end
return copy
end
function p.deepCopy(orig, noMetatable, already_seen)
checkType("deepCopy", 3, already_seen, "table", true)
return _deepCopy(orig, not noMetatable, already_seen)
end
------------------------------------------------------------------------------------
-- sparseConcat
--
-- Concatenates all values in the table that are indexed by a number, in order.
-- sparseConcat{a, nil, c, d} => "acd"
-- sparseConcat{nil, b, c, d} => "bcd"
------------------------------------------------------------------------------------
function p.sparseConcat(t, sep, i, j)
local arr = {}
local arr_i = 0
for _, v in p.sparseIpairs(t) do
arr_i = arr_i + 1
arr[arr_i] = v
end
return table.concat(arr, sep, i, j)
end
------------------------------------------------------------------------------------
-- length
--
-- Finds the length of an array, or of a quasi-array with keys such as "data1",
-- "data2", etc., using an exponential search algorithm. It is similar to the
-- operator #, but may return a different value when there are gaps in the array
-- portion of the table. Intended to be used on data loaded with mw.loadData. For
-- other tables, use #.
-- Note: #frame.args in frame object always be set to 0, regardless of the number
-- of unnamed template parameters, so use this function for frame.args.
------------------------------------------------------------------------------------
function p.length(t, prefix)
-- requiring module inline so that [[Module:Exponential search]] which is
-- only needed by this one function doesn't get millions of transclusions
local expSearch = require("Module:Exponential search")
checkType('length', 1, t, 'table')
checkType('length', 2, prefix, 'string', true)
return expSearch(function (i)
local key
if prefix then
key = prefix .. tostring(i)
else
key = i
end
return t[key] ~= nil
end) or 0
end
------------------------------------------------------------------------------------
-- inArray
--
-- Returns true if valueToFind is a member of the array, and false otherwise.
------------------------------------------------------------------------------------
function p.inArray(arr, valueToFind)
checkType("inArray", 1, arr, "table")
-- if valueToFind is nil, error?
for _, v in ipairs(arr) do
if v == valueToFind then
return true
end
end
return false
end
return p
085e7094ac84eb0132ee65822cf3f69cd8ba3d81
Module:Template link general
828
85
162
161
2022-07-21T19:51:00Z
Wikiricky
1
1 revision imported
Scribunto
text/plain
-- This implements Template:Tlg
local getArgs = require('Module:Arguments').getArgs
local p = {}
-- Is a string non-empty?
local function _ne(s)
return s ~= nil and s ~= ""
end
local nw = mw.text.nowiki
local function addTemplate(s)
local i, _ = s:find(':', 1, true)
if i == nil then
return 'Template:' .. s
end
local ns = s:sub(1, i - 1)
if ns == '' or mw.site.namespaces[ns] then
return s
else
return 'Template:' .. s
end
end
local function trimTemplate(s)
local needle = 'template:'
if s:sub(1, needle:len()):lower() == needle then
return s:sub(needle:len() + 1)
else
return s
end
end
local function linkTitle(args)
if _ne(args.nolink) then
return args['1']
end
local titleObj
local titlePart = '[['
if args['1'] then
-- This handles :Page and other NS
titleObj = mw.title.new(args['1'], 'Template')
else
titleObj = mw.title.getCurrentTitle()
end
titlePart = titlePart .. (titleObj ~= nil and titleObj.fullText or
addTemplate(args['1']))
local textPart = args.alttext
if not _ne(textPart) then
if titleObj ~= nil then
textPart = titleObj:inNamespace("Template") and args['1'] or titleObj.fullText
else
-- redlink
textPart = args['1']
end
end
if _ne(args.subst) then
-- HACK: the ns thing above is probably broken
textPart = 'subst:' .. textPart
end
if _ne(args.brace) then
textPart = nw('{{') .. textPart .. nw('}}')
elseif _ne(args.braceinside) then
textPart = nw('{') .. textPart .. nw('}')
end
titlePart = titlePart .. '|' .. textPart .. ']]'
if _ne(args.braceinside) then
titlePart = nw('{') .. titlePart .. nw('}')
end
return titlePart
end
function p.main(frame)
local args = getArgs(frame, {
trim = true,
removeBlanks = false
})
return p._main(args)
end
function p._main(args)
local bold = _ne(args.bold) or _ne(args.boldlink) or _ne(args.boldname)
local italic = _ne(args.italic) or _ne(args.italics)
local dontBrace = _ne(args.brace) or _ne(args.braceinside)
local code = _ne(args.code) or _ne(args.tt)
local show_result = _ne(args._show_result)
local expand = _ne(args._expand)
-- Build the link part
local titlePart = linkTitle(args)
if bold then titlePart = "'''" .. titlePart .. "'''" end
if _ne(args.nowrapname) then titlePart = '<span class="nowrap">' .. titlePart .. '</span>' end
-- Build the arguments
local textPart = ""
local textPartBuffer = "|"
local codeArguments = {}
local codeArgumentsString = ""
local i = 2
local j = 1
while args[i] do
local val = args[i]
if val ~= "" then
if _ne(args.nowiki) then
-- Unstrip nowiki tags first because calling nw on something that already contains nowiki tags will
-- mangle the nowiki strip marker and result in literal UNIQ...QINU showing up
val = nw(mw.text.unstripNoWiki(val))
end
local k, v = string.match(val, "(.*)=(.*)")
if not k then
codeArguments[j] = val
j = j + 1
else
codeArguments[k] = v
end
codeArgumentsString = codeArgumentsString .. textPartBuffer .. val
if italic then
val = '<span style="font-style:italic;">' .. val .. '</span>'
end
textPart = textPart .. textPartBuffer .. val
end
i = i + 1
end
-- final wrap
local ret = titlePart .. textPart
if not dontBrace then ret = nw('{{') .. ret .. nw('}}') end
if _ne(args.a) then ret = nw('*') .. ' ' .. ret end
if _ne(args.kbd) then ret = '<kbd>' .. ret .. '</kbd>' end
if code then
ret = '<code>' .. ret .. '</code>'
elseif _ne(args.plaincode) then
ret = '<code style="border:none;background:transparent;">' .. ret .. '</code>'
end
if _ne(args.nowrap) then ret = '<span class="nowrap">' .. ret .. '</span>' end
--[[ Wrap as html??
local span = mw.html.create('span')
span:wikitext(ret)
--]]
if _ne(args.debug) then ret = ret .. '\n<pre>' .. mw.text.encode(mw.dumpObject(args)) .. '</pre>' end
if show_result then
local result = mw.getCurrentFrame():expandTemplate{title = addTemplate(args[1]), args = codeArguments}
ret = ret .. " → " .. result
end
if expand then
local query = mw.text.encode('{{' .. addTemplate(args[1]) .. string.gsub(codeArgumentsString, textPartBuffer, "|") .. '}}')
local url = mw.uri.fullUrl('special:ExpandTemplates', 'wpInput=' .. query)
mw.log()
ret = ret .. " [" .. tostring(url) .. "]"
end
return ret
end
return p
c7307fa3959d308a2dd7fd2f5009c1ce6db3d122
Module:Transclusion count
828
86
164
163
2022-07-21T19:51:00Z
Wikiricky
1
1 revision imported
Scribunto
text/plain
local p = {}
function p.fetch(frame)
local template = nil
local return_value = nil
-- Use demo parameter if it exists, otherswise use current template name
local namespace = mw.title.getCurrentTitle().namespace
if frame.args["demo"] and frame.args["demo"] ~= "" then
template = frame.args["demo"]
elseif namespace == 10 then -- Template namespace
template = mw.title.getCurrentTitle().text
elseif namespace == 828 then -- Module namespace
template = (mw.site.namespaces[828].name .. ":" .. mw.title.getCurrentTitle().text)
end
-- If in template or module namespace, look up count in /data
if template ~= nil then
namespace = mw.title.new(template, "Template").namespace
if namespace == 10 or namespace == 828 then
template = mw.ustring.gsub(template, "/doc$", "") -- strip /doc from end
local index = mw.ustring.sub(mw.title.new(template).text,1,1)
local status, data = pcall(function ()
return(mw.loadData('Module:Transclusion_count/data/' .. (mw.ustring.find(index, "%a") and index or "other")))
end)
if status then
return_value = tonumber(data[mw.ustring.gsub(template, " ", "_")])
end
end
end
-- If database value doesn't exist, use value passed to template
if return_value == nil and frame.args[1] ~= nil then
local arg1=mw.ustring.match(frame.args[1], '[%d,]+')
if arg1 and arg1 ~= '' then
return_value = tonumber(frame:callParserFunction('formatnum', arg1, 'R'))
end
end
return return_value
end
-- Tabulate this data for [[Wikipedia:Database reports/Templates transcluded on the most pages]]
function p.tabulate(frame)
local list = {}
for i = 65, 91 do
local data = mw.loadData('Module:Transclusion count/data/' .. ((i == 91) and 'other' or string.char(i)))
for name, count in pairs(data) do
table.insert(list, {mw.title.new(name, "Template").fullText, count})
end
end
table.sort(list, function(a, b)
return (a[2] == b[2]) and (a[1] < b[1]) or (a[2] > b[2])
end)
local lang = mw.getContentLanguage();
for i = 1, #list do
list[i] = ('|-\n| %d || [[%s]] || %s\n'):format(i, list[i][1]:gsub('_', ' '), lang:formatNum(list[i][2]))
end
return table.concat(list)
end
return p
9b2940dfd623cf550f748fd5bfc25b7f69cd14cd
Module:Transclusion count/data/D
828
87
166
165
2022-07-21T19:51:00Z
Wikiricky
1
1 revision imported
Scribunto
text/plain
return {
["D&D"] = 3800,
["D&D_to-do"] = 5500,
["D-da"] = 3000,
["DANFS"] = 8400,
["DC-Comics-trademark-copyright"] = 2100,
["DCS_Sri_Lanka"] = 2100,
["DDR"] = 2800,
["DEC"] = 8300,
["DECADE"] = 266000,
["DEN"] = 6500,
["DEU"] = 17000,
["DMC"] = 60000,
["DMCA"] = 1940000,
["DNB"] = 8600,
["DNB-Portal"] = 2100,
["DNB_portal"] = 3900,
["DNK"] = 7600,
["DNZB"] = 3500,
["DOI"] = 3900,
["DOWs"] = 2600,
["DPP"] = 92000,
["DPP/logo"] = 92000,
["DRV_links"] = 3400,
["DWT"] = 2200,
["DYKC"] = 6700,
["DYKF"] = 2100,
["DYK_blue"] = 3400,
["DYK_checklist"] = 9300,
["DYK_conditions"] = 58000,
["DYK_files"] = 2100,
["DYK_header"] = 25000,
["DYK_nompage_links"] = 69000,
["DYK_talk"] = 100000,
["DYK_talk/date"] = 100000,
["DYK_tools"] = 47000,
["DYK_tools/styles.css"] = 47000,
["DYKfile"] = 12000,
["DZA"] = 2600,
["Dab"] = 16000,
["Dablink"] = 2400,
["Dagger"] = 15000,
["Dashboard.wikiedu.org_assignment"] = 4600,
["Dashboard.wikiedu.org_bibliography/guide"] = 2900,
["Dashboard.wikiedu.org_course_header"] = 5200,
["Dashboard.wikiedu.org_course_header/edit-note"] = 5200,
["Dashboard.wikiedu.org_draft_template/about_this_sandbox"] = 5300,
["Dashboard.wikiedu.org_evaluate_article/guide"] = 4300,
["Dashboard.wikiedu.org_peer_review/guide"] = 6500,
["Dashboard.wikiedu.org_sandbox"] = 79000,
["Dashboard.wikiedu.org_student_editor"] = 66000,
["Dashboard.wikiedu.org_student_program_sandbox"] = 78000,
["Dashboard.wikiedu.org_talk_course_link"] = 68000,
["Dashboard.wikiedu.org_user_talk"] = 2200,
["Date"] = 37000,
["Date-mf"] = 36000,
["Date_table_sorting"] = 38000,
["Dated_maintenance_category"] = 2000000,
["Davis_Cup_player"] = 2300,
["Day+1"] = 6800,
["Day-1"] = 8300,
["Dbox"] = 3000,
["Dda"] = 5100,
["Dead_YouTube_links"] = 2900,
["Dead_Youtube_links"] = 2900,
["Dead_link"] = 267000,
["Death-date"] = 11000,
["Death-date_and_age"] = 9800,
["Death_date"] = 8800,
["Death_date_and_age"] = 356000,
["Death_date_and_given_age"] = 2100,
["Death_year_and_age"] = 15000,
["Death_year_category_header"] = 2000,
["Decade"] = 2100,
["Decade_link"] = 32000,
["Decimals"] = 2500,
["Decline"] = 2500,
["Declined"] = 3100,
["Decrease"] = 31000,
["Define"] = 4900,
["Deg2DMS"] = 3300,
["Deletion_review_log_header"] = 5200,
["Deletion_review_log_header/Core"] = 5300,
["Delink"] = 1700000,
["Delink_question_hyphen-minus"] = 277000,
["Delrevxfd"] = 3400,
["Democratic_Party_(US)/meta/shading"] = 14000,
["Description_missing"] = 7700,
["Designation/abbreviation"] = 7900,
["Designation/color"] = 76000,
["Designation/colour"] = 78000,
["Designation/colour2"] = 16000,
["Designation/divbox"] = 27000,
["Designation/text"] = 40000,
["Designation_list"] = 4900,
["Details"] = 5400,
["DetailsLink"] = 5500,
["Detect_singular"] = 14000,
["Deutsche_Bahn_station_codes"] = 2200,
["DfE_performance_tables"] = 4500,
["Diff"] = 30000,
["Diff2"] = 11000,
["Digits"] = 19000,
["Directories_box"] = 3200,
["Disamb"] = 2200,
["Disambig"] = 64000,
["Disambig-Class"] = 12000,
["DisambigProj"] = 12000,
["DisambigProject"] = 150000,
["Disambigproject"] = 5700,
["Disambiguation"] = 211000,
["Disambiguation/cat"] = 210000,
["Disambiguation_needed"] = 2300,
["Disambiguation_page_short_description"] = 341000,
["Discogs_artist"] = 13000,
["Discogs_master"] = 10000,
["Discogs_release"] = 2700,
["Discussion_bottom"] = 11000,
["Discussion_top"] = 12000,
["DisestcatCountry"] = 9300,
["DisestcatCountry/core"] = 9300,
["DisestcatCountryDecade"] = 2600,
["DisestcatUSstate"] = 4800,
["DisestcatUSstate/core"] = 4800,
["Disputed"] = 2200,
["Distinguish"] = 87000,
["Disused_Rail_Start"] = 4000,
["Disused_rail_start"] = 4300,
["Disused_style"] = 4700,
["Div_col"] = 363000,
["Div_col/styles.css"] = 365000,
["Div_col_end"] = 279000,
["Div_col_start"] = 2700,
["Divbox"] = 302000,
["Divbox/styles.css"] = 327000,
["Dividing_line"] = 4100,
["Dmbox"] = 443000,
["Dmbox/styles.css"] = 443000,
["Do_not_move_to_Commons"] = 15000,
["Doc"] = 3300,
["Documentation"] = 82000,
["Documentation_subpage"] = 87000,
["Dog_opentask"] = 3300,
["Doi"] = 24000,
["Doing"] = 3500,
["Don't_edit_this_line"] = 98000,
["Don't_edit_this_line_always_display"] = 425000,
["Don't_edit_this_line_extinct"] = 425000,
["Don't_edit_this_line_link_target"] = 425000,
["Don't_edit_this_line_link_text"] = 425000,
["Don't_edit_this_line_parent"] = 425000,
["Don't_edit_this_line_rank"] = 425000,
["Don't_edit_this_line_refs"] = 98000,
["Don't_edit_this_line_same_as"] = 425000,
["Done"] = 96000,
["Doppelganger"] = 2700,
["Dot"] = 3000,
["Double+single"] = 2300,
["Double-dagger"] = 15000,
["Dr"] = 3400,
["Dr-logno"] = 3400,
["Dr-make"] = 3400,
["Dr-yr"] = 3400,
["Draft_article"] = 2900,
["Draft_article_check"] = 3000,
["Draft_categories"] = 2700,
["Draft_other"] = 115000,
["Draft_topics"] = 24000,
["Drafts_moved_from_mainspace"] = 8700,
["Draw"] = 3400,
["Draw_key"] = 16000,
["Draw_links"] = 8500,
["Drep"] = 3400,
["Drugbankcite"] = 4300,
["Drugbox"] = 7400,
["Drugs.com"] = 3300,
["Ds/editnotice"] = 2300,
["Ds/talk_notice"] = 5400,
["Ds/topics"] = 8200,
["Dsindex"] = 2400,
["Dts"] = 37000,
["Dubious"] = 8000,
["Duck"] = 2700,
["Dummytab"] = 4500,
["Duration"] = 36000,
["Dutch_municipality"] = 2600,
["Dyktalk"] = 43000,
["Dynamic_IP"] = 5800,
["Dynamic_list"] = 8800,
["Module:DYK_checklist"] = 9300,
["Module:DYK_checklist/data"] = 9300,
["Module:DYK_nompage_links"] = 69000,
["Module:Data"] = 144000,
["Module:Date"] = 1290000,
["Module:DateI18n"] = 67000,
["Module:Date_table_sorting"] = 38000,
["Module:DecodeEncode"] = 52000,
["Module:Delink"] = 1820000,
["Module:Detect_singular"] = 1160000,
["Module:Disambiguation"] = 316000,
["Module:Distinguish"] = 87000,
["Module:Documentation"] = 127000,
["Module:Documentation/config"] = 127000,
["Module:Documentation/styles.css"] = 126000,
["Module:Draft_topics"] = 24000,
["Module:Duration"] = 232000,
}
8d1a6b12a88b2937c570f162f7a0aef8e64db613
Module:Uses TemplateStyles
828
88
168
167
2022-07-21T19:51:00Z
Wikiricky
1
1 revision imported
Scribunto
text/plain
local yesno = require('Module:Yesno')
local mList = require('Module:List')
local mTableTools = require('Module:TableTools')
local mMessageBox = require('Module:Message box')
local TNT = require('Module:TNT')
local p = {}
local function format(msg, ...)
return TNT.format('I18n/Uses TemplateStyles', msg, ...)
end
local function getConfig()
return mw.loadData('Module:Uses TemplateStyles/config')
end
local function renderBox(tStyles)
local boxArgs = {
type = 'notice',
small = true,
image = string.format('[[File:Farm-Fresh css add.svg|32px|alt=%s]]', format('logo-alt'))
}
if #tStyles < 1 then
boxArgs.text = string.format('<strong class="error">%s</strong>', format('error-emptylist'))
else
local cfg = getConfig()
local tStylesLinks = {}
for i, ts in ipairs(tStyles) do
local link = string.format('[[:%s]]', ts)
local sandboxLink = nil
local tsTitle = mw.title.new(ts)
if tsTitle and cfg['sandbox_title'] then
local tsSandboxTitle = mw.title.new(string.format(
'%s:%s/%s/%s', tsTitle.nsText, tsTitle.baseText, cfg['sandbox_title'], tsTitle.subpageText))
if tsSandboxTitle and tsSandboxTitle.exists then
sandboxLink = format('sandboxlink', link, ':' .. tsSandboxTitle.prefixedText)
end
end
tStylesLinks[i] = sandboxLink or link
end
local tStylesList = mList.makeList('bulleted', tStylesLinks)
boxArgs.text = format(
mw.title.getCurrentTitle():inNamespaces(828,829) and 'header-module' or 'header-template') ..
'\n' .. tStylesList
end
return mMessageBox.main('mbox', boxArgs)
end
local function renderTrackingCategories(args, tStyles, titleObj)
if yesno(args.nocat) then
return ''
end
local cfg = getConfig()
local cats = {}
-- Error category
if #tStyles < 1 and cfg['error_category'] then
cats[#cats + 1] = cfg['error_category']
end
-- TemplateStyles category
titleObj = titleObj or mw.title.getCurrentTitle()
if (titleObj.namespace == 10 or titleObj.namespace == 828)
and not cfg['subpage_blacklist'][titleObj.subpageText]
then
local category = args.category or cfg['default_category']
if category then
cats[#cats + 1] = category
end
if not yesno(args.noprotcat) and (cfg['protection_conflict_category'] or cfg['padlock_pattern']) then
local currentProt = titleObj.protectionLevels["edit"] and titleObj.protectionLevels["edit"][1] or nil
local addedLevelCat = false
local addedPadlockCat = false
for i, ts in ipairs(tStyles) do
local tsTitleObj = mw.title.new(ts)
local tsProt = tsTitleObj.protectionLevels["edit"] and tsTitleObj.protectionLevels["edit"][1] or nil
if cfg['padlock_pattern'] and tsProt and not addedPadlockCat then
local content = tsTitleObj:getContent()
if not content:find(cfg['padlock_pattern']) then
cats[#cats + 1] = cfg['missing_padlock_category']
addedPadlockCat = true
end
end
if cfg['protection_conflict_category'] and currentProt and tsProt ~= currentProt and not addedLevelCat then
currentProt = cfg['protection_hierarchy'][currentProt] or 0
tsProt = cfg['protection_hierarchy'][tsProt] or 0
if tsProt < currentProt then
addedLevelCat = true
cats[#cats + 1] = cfg['protection_conflict_category']
end
end
end
end
end
for i, cat in ipairs(cats) do
cats[i] = string.format('[[Category:%s]]', cat)
end
return table.concat(cats)
end
function p._main(args, cfg)
local tStyles = mTableTools.compressSparseArray(args)
local box = renderBox(tStyles)
local trackingCategories = renderTrackingCategories(args, tStyles)
return box .. trackingCategories
end
function p.main(frame)
local origArgs = frame:getParent().args
local args = {}
for k, v in pairs(origArgs) do
v = v:match('^%s*(.-)%s*$')
if v ~= '' then
args[k] = v
end
end
return p._main(args)
end
return p
71ca57c37849f38e3c5ee30061bdae730963e48e
Module:Uses TemplateStyles/config
828
89
170
169
2022-07-21T19:51:01Z
Wikiricky
1
1 revision imported
Scribunto
text/plain
local cfg = {} -- Don’t touch this line.
-- Subpage blacklist: these subpages will not be categorized (except for the
-- error category, which is always added if there is an error).
-- For example “Template:Foo/doc” matches the `doc = true` rule, so it will have
-- no categories. “Template:Foo” and “Template:Foo/documentation” match no rules,
-- so they *will* have categories. All rules should be in the
-- ['<subpage name>'] = true,
-- format.
cfg['subpage_blacklist'] = {
['doc'] = true,
['sandbox'] = true,
['sandbox2'] = true,
['testcases'] = true,
}
-- Sandbox title: if the stylesheet’s title is <template>/<stylesheet>.css, the
-- stylesheet’s sandbox is expected to be at <template>/<sandbox_title>/<stylesheet>.css
-- Set to nil to disable sandbox links.
cfg['sandbox_title'] = 'sandbox'
-- Error category: this category is added if the module call contains errors
-- (e.g. no stylesheet listed). A category name without namespace, or nil
-- to disable categorization (not recommended).
cfg['error_category'] = 'Uses TemplateStyles templates with errors'
-- Default category: this category is added if no custom category is specified
-- in module/template call. A category name without namespace, or nil
-- to disable categorization.
cfg['default_category'] = 'Templates using TemplateStyles'
-- Protection conflict category: this category is added if the protection level
-- of any stylesheet is lower than the protection level of the template. A category name
-- without namespace, or nil to disable categorization (not recommended).
cfg['protection_conflict_category'] = 'Templates using TemplateStyles with a different protection level'
-- Hierarchy of protection levels, used to determine whether one protection level is lower
-- than another and thus should populate protection_conflict_category. No protection is treated as zero
cfg['protection_hierarchy'] = {
autoconfirmed = 1,
extendedconfirmed = 2,
templateeditor = 3,
sysop = 4
}
-- Padlock pattern: Lua pattern to search on protected stylesheets for, or nil
-- to disable padlock check.
cfg['padlock_pattern'] = '{{pp-'
-- Missing padlock category: this category is added if a protected stylesheet
-- doesn’t contain any padlock template (specified by the above Lua pattern).
-- A category name without namespace (no nil allowed) if the pattern is not nil,
-- unused (and thus may be nil) otherwise.
cfg['missing_padlock_category'] = 'Templates using TemplateStyles without padlocks'
return cfg -- Don’t touch this line.
58e7a37c44f6ea3f6b8af54a559d696cc7256493
Module:Yesno
828
90
172
171
2022-07-21T19:51:01Z
Wikiricky
1
1 revision imported
Scribunto
text/plain
-- Function allowing for consistent treatment of boolean-like wikitext input.
-- It works similarly to the template {{yesno}}.
return function (val, default)
-- If your wiki uses non-ascii characters for any of "yes", "no", etc., you
-- should replace "val:lower()" with "mw.ustring.lower(val)" in the
-- following line.
val = type(val) == 'string' and val:lower() or val
if val == nil then
return nil
elseif val == true
or val == 'yes'
or val == 'y'
or val == 'true'
or val == 't'
or val == 'on'
or tonumber(val) == 1
then
return true
elseif val == false
or val == 'no'
or val == 'n'
or val == 'false'
or val == 'f'
or val == 'off'
or tonumber(val) == 0
then
return false
else
return default
end
end
f767643e7d12126d020d88d662a3dd057817b9dc
Template:CSS3 multiple column layout
10
19
174
173
2022-07-21T19:52:20Z
Wikiricky
1
1 revision imported
wikitext
text/x-wiki
{| class="wikitable" style="float:right;clear:right;font-size:90%;margin:0 0 1em 1em;text-align:center;line-height:1.25em;"
|+ style="line-height:1.25em;padding-bottom:0.25em;"| CSS3 multiple-column layout browser support
|-
! Property !! [[Internet Explorer|Internet<br />Explorer]] !! [[Firefox]] !! [[Safari (web browser)|Safari]] !! [[Google Chrome|Chrome]] !! [[Opera (web browser)|Opera]]
|-
| column-width<br/>column-count
| {{yes|≥ 10<br />{{smaller|(2012)}}}} || {{yes|≥ 1.5<br />{{smaller|(2005)}}}} || {{yes|≥ 3<br />{{smaller|(2007)}}}} || {{yes|≥ 1<br />{{smaller|(2008)}}}} || {{yes|≥ 11.1<br />{{smaller|(2011)}}}}
|-
| columns
| {{yes|≥ 10<br />{{smaller|(2012)}}}} || {{yes|≥ 9<br />{{smaller|(2011)}}}} || {{yes|≥ 3<br />{{smaller|(2007)}}}} || {{yes|≥ 1<br />{{smaller|(2008)}}}} || {{yes|≥ 11.1<br />{{smaller|(2011)}}}}
|-
| break-before<br/>break-after<br/>break-inside
| {{yes|≥ 10<br />{{smaller|(2012)}}}} || {{maybe|≥ 65<br />{{smaller|(2019)}}}}<!-- no break-after --> || {{yes|≥ 10<br />{{smaller|(2016)}}}} || {{maybe|≥ 65<br />{{smaller|(2016)}}}}<!-- no break-after --> || {{maybe|≥ 15<br />{{smaller|(2013)}}}}<!-- no break-after -->
|-
|colspan="6" style="text-align:right"|{{navbar|CSS3 multiple column layout|mini=y}}
|}<noinclude>
{{Documentation}}
</noinclude>
c44910bab9b28d152d3b51049cbfed9bf55dcca5
Places where people live in Grenada
0
17
175
26
2022-07-21T21:13:09Z
Wikiricky
1
added to carriaco section
wikitext
text/x-wiki
This is a list of populated villages, towns, settlements, and streets in Grenada. Many of the village names in Grenada are based upon the names of plantations. Grenada has 7 Parishes
==[[St.George,Grenada|St.George]]==
*[[ANNANDALE,St.George,Grenada|ANNANDALE]]
*[[ARCHIBALD AVENUE,St.George,Grenada|ARCHIBALD AVENUE]]
*[[BACK STREET, TEMPE,St.George,Grenada|BACK STREET, TEMPE]]
*[[BAIN'S ALLEY,St.George,Grenada|BAIN'S ALLEY]]
*[[BAMBOO,St.George,Grenada|BAMBOO]]
*[[BEAULIEU,St.George,Grenada|BEAULIEU]]
*[[BELMONT,St.George,Grenada|BELMONT]]
*[[BLACK FOREST, VENDOME,St.George,Grenada|BLACK FOREST, VENDOME]]
*[[BLACKBURN ALLEY,St.George,Grenada|BLACKBURN ALLEY]]
*[[BOCA,St.George,Grenada|BOCA]]
*[[BON ACCORD ESTATE,St.George,Grenada|BON ACCORD ESTATE]]
*[[BOTANICAL GARDENS,St.George,Grenada|BOTANICAL GARDENS]]
*[[BRIGG'S ALLEY,St.George,Grenada|BRIGG'S ALLEY]]
*[[BRIZAN,St.George,Grenada|BRIZAN]]
*[[CAFE,St.George,Grenada|CAFE]]
*[[CALABASH ALLEY,St.George,Grenada|CALABASH ALLEY]]
*[[CALIVIGNY,St.George,Grenada|CALIVIGNY]]
*[[CALLISTE,St.George,Grenada|CALLISTE]]
*[[CARENAGE,St.George,Grenada|CARENAGE]]
*[[CARRIERE,St.George,Grenada|CARRIERE]]
*[[CEMETERY HILL,St.George,Grenada|CEMETERY HILL]]
*[[CHANTILLY, TEMPE,St.George,Grenada|CHANTILLY, TEMPE]]
*[[CHEMIN RIVER,St.George,Grenada|CHEMIN RIVER]]
*[[CHERRY HILL,St.George,Grenada|CHERRY HILL]]
*[[CHURCH STREET,St.George,Grenada|CHURCH STREET]]
*[[CIRCULAR DRIVE, FREQUENTE,St.George,Grenada|CIRCULAR DRIVE, FREQUENTE]]
*[[CLARKES COURT BAY,,St.George,Grenada|CLARKES COURT BAY,]]
*[[COCOA ROAD, MARIAN,St.George,Grenada|COCOA ROAD, MARIAN]]
*[[CONFER,St.George,Grenada|CONFER]]
*[[CONSTANTINE,St.George,Grenada|CONSTANTINE]]
*[[CORBEAU TOWN,St.George,Grenada|CORBEAU TOWN]]
*[[COX ALLEY,St.George,Grenada|COX ALLEY]]
*[[CREIGHTON,St.George,Grenada|CREIGHTON]]
*[[CROSS STREET,St.George,Grenada|CROSS STREET]]
*[[D'ARBEAU,St.George,Grenada|D'ARBEAU]]
*[[DE FAUX,St.George,Grenada|DE FAUX]]
*[[DE VILLA, BLACKBURN ALLEY,St.George,Grenada|DE VILLA, BLACKBURN ALLEY]]
*[[DIXIE, SPRINGS,St.George,Grenada|DIXIE, SPRINGS]]
*[[DUSTY HIGHWAY, GRAND ANSE,St.George,Grenada|DUSTY HIGHWAY, GRAND ANSE]]
*[[EDGEMOND POINT,St.George,Grenada|EDGEMOND POINT]]
*[[FALL EDGE, GRAND ANSE,St.George,Grenada|FALL EDGE, GRAND ANSE]]
*[[FELIX PARK,St.George,Grenada|FELIX PARK]]
*[[FENTON VILLAGE,St.George,Grenada|FENTON VILLAGE]]
*[[FONTENOY,St.George,Grenada|FONTENOY]]
*[[FORT JUEDY,St.George,Grenada|FORT JUEDY]]
*[[FREQUENTE,St.George,Grenada|FREQUENTE]]
*[[GOLF COURSE,St.George,Grenada|GOLF COURSE]]
*[[GOOD HOPE,St.George,Grenada|GOOD HOPE]]
*[[GORE STREET,St.George,Grenada|GORE STREET]]
*[[GRAND ANSE,St.George,Grenada|GRAND ANSE]]
*[[GRAND ANSE ESTATE, LANCE AUX,St.George,Grenada|GRAND ANSE ESTATE, LANCE AUX]]
*[[GRAND ANSE HOUSING SCHEME,St.George,Grenada|GRAND ANSE HOUSING SCHEME]]
*[[GRAND ANSE VALLEY,St.George,Grenada|GRAND ANSE VALLEY]]
*[[GRAND ETANG ROAD,St.George,Grenada|GRAND ETANG ROAD]]
*[[GRAND MAL,St.George,Grenada|GRAND MAL]]
*[[GRANTON,St.George,Grenada|GRANTON]]
*[[GREEN STREET,St.George,Grenada|GREEN STREET]]
*[[GRENVILLE STREET,St.George,Grenada|GRENVILLE STREET]]
*[[GRENVILLE VALE,St.George,Grenada|GRENVILLE VALE]]
*[[GREY STONE, BELMONT,St.George,Grenada|GREY STONE, BELMONT]]
*[[H.A BLAIZE STREET,St.George,Grenada|H.A BLAIZE STREET]]
*[[HADDON SMITH STREET,St.George,Grenada|HADDON SMITH STREET]]
*[[HALIFAX STREET,St.George,Grenada|HALIFAX STREET]]
*[[HAPPY HILL,St.George,Grenada|HAPPY HILL]]
*[[HILL TOP, CALIVIGNY,St.George,Grenada|HILL TOP, CALIVIGNY]]
*[[HILLS ROAD,St.George,Grenada|HILLS ROAD]]
*[[HILLSBOROUGH STREET,St.George,Grenada|HILLSBOROUGH STREET]]
*[[HOPE VALE,St.George,Grenada|HOPE VALE]]
*[[INDEPENDENCE AVENUE,St.George,Grenada|INDEPENDENCE AVENUE]]
*[[JEAN ANGLIAS,St.George,Grenada|JEAN ANGLIAS]]
*[[JUMBIE,St.George,Grenada|JUMBIE]]
*[[KAFE BEAU HILL,St.George,Grenada|KAFE BEAU HILL]]
*[[LA BORIE,St.George,Grenada|LA BORIE]]
*[[LA MODE,St.George,Grenada|LA MODE]]
*[[LAGOON ROAD,St.George,Grenada|LAGOON ROAD]]
*[[LANCE AUX EPINES,St.George,Grenada|LANCE AUX EPINES]]
*[[LONG GUTTER,St.George,Grenada|LONG GUTTER]]
*[[LOWER MORNE JALOUX,St.George,Grenada|LOWER MORNE JALOUX]]
*[[LOWER WOBURN,St.George,Grenada|LOWER WOBURN]]
*[[LOWTHER'S LANE,St.George,Grenada|LOWTHER'S LANE]]
*[[LUCAS STREET,St.George,Grenada|LUCAS STREET]]
*[[MANGO, NEW HAMPSHIRE,St.George,Grenada|MANGO, NEW HAMPSHIRE]]
*[[MARDIGRAS,St.George,Grenada|MARDIGRAS]]
*[[MARIAN,St.George,Grenada|MARIAN]]
*[[MARKET HILL,St.George,Grenada|MARKET HILL]]
*[[MARRAST HILL,St.George,Grenada|MARRAST HILL]]
*[[MAURICE BISHOP HIGHWAY, GRAND ANSE,St.George,Grenada|MAURICE BISHOP HIGHWAY, GRAND ANSE]]
*[[MAURICE BISHOP HWY, GRAND,St.George,Grenada|MAURICE BISHOP HWY, GRAND]]
*[[MELVILLE STREET,St.George,Grenada|MELVILLE STREET]]
*[[MOLINIERE,St.George,Grenada|MOLINIERE]]
*[[MONT TOUTE,St.George,Grenada|MONT TOUTE]]
*[[MORNE DELICE,St.George,Grenada|MORNE DELICE]]
*[[MORNE JALOUX,St.George,Grenada|MORNE JALOUX]]
*[[MORNE ROUGE,St.George,Grenada|MORNE ROUGE]]
*[[MORTLEY ROAD,St.George,Grenada|MORTLEY ROAD]]
*[[MT. AIRY,St.George,Grenada|MT. AIRY]]
*[[MT. GAY,St.George,Grenada|MT. GAY]]
*[[MT. HARTMAN,St.George,Grenada|MT. HARTMAN]]
*[[MT. MORITZ,St.George,Grenada|MT. MORITZ]]
*[[MT. PARNASSUS,St.George,Grenada|MT. PARNASSUS]]
*[[MT. RUSH,St.George,Grenada|MT. RUSH]]
*[[MT. WHELDALE,St.George,Grenada|MT. WHELDALE]]
*[[OBSERVATORY ROAD,St.George,Grenada|OBSERVATORY ROAD]]
*[[OLD FORT,St.George,Grenada|OLD FORT]]
*[[PADDOCK,St.George,Grenada|PADDOCK]]
*[[PARADE,St.George,Grenada|PARADE]]
*[[PARK LANE,St.George,Grenada|PARK LANE]]
*[[PERSEVERANCE,St.George,Grenada|PERSEVERANCE]]
*[[PETERSFIELD,St.George,Grenada|PETERSFIELD]]
*[[POINT SALINES,St.George,Grenada|POINT SALINES]]
*[[QUEEN'S PARK,St.George,Grenada|QUEEN'S PARK]]
*[[RADIX, MT. PARNASSUS,St.George,Grenada|RADIX, MT. PARNASSUS]]
*[[RAVINE, MT. GAY,St.George,Grenada|RAVINE, MT. GAY]]
*[[RICHMOND HILL,St.George,Grenada|RICHMOND HILL]]
*[[RIVER ROAD,St.George,Grenada|RIVER ROAD]]
*[[ROEBUCK,St.George,Grenada|ROEBUCK]]
*[[SANS SOUCI,St.George,Grenada|SANS SOUCI]]
*[[SCOTT STREET,St.George,Grenada|SCOTT STREET]]
*[[SHENDA,St.George,Grenada|SHENDA]]
*[[SIMMONS STREET,St.George,Grenada|SIMMONS STREET]]
*[[SNUG CORNER,St.George,Grenada|SNUG CORNER]]
*[[SPRING GARDEN,St.George,Grenada|SPRING GARDEN]]
*[[SPRINGS,St.George,Grenada|SPRINGS]]
*[[ST. GEORGE ESTATE,St.George,Grenada|ST. GEORGE ESTATE]]
*[[ST. JUILLE STREET,St.George,Grenada|ST. JUILLE STREET]]
*[[ST.PAUL'S,St.George,Grenada|ST.PAUL'S]]
*[[SUNSET VALLEY, POINT SALINES,St.George,Grenada|SUNSET VALLEY, POINT SALINES]]
*[[TANTEEN, TANTEEN TERRACE,St.George,Grenada|TANTEEN, TANTEEN TERRACE]]
*[[TEMPE,St.George,Grenada|TEMPE]]
*[[THE BOCAS,St.George,Grenada|THE BOCAS]]
*[[THE GREENS,St.George,Grenada|THE GREENS]]
*[[THE LIMES,St.George,Grenada|THE LIMES]]
*[[THE STONES, GRAND ANSE,St.George,Grenada|THE STONES, GRAND ANSE]]
*[[THE STONES, NEW HAMPSHIRE,St.George,Grenada|THE STONES, NEW HAMPSHIRE]]
*[[THE VILLA, LONG GUTTER,St.George,Grenada|THE VILLA, LONG GUTTER]]
*[[TRANQUIL LANE,St.George,Grenada|TRANQUIL LANE]]
*[[TRUE BLUE,St.George,Grenada|TRUE BLUE]]
*[[TRYNE ALLEY,St.George,Grenada|TRYNE ALLEY]]
*[[TURTLE BACK DRIVE, LANCE AUX,St.George,Grenada|TURTLE BACK DRIVE, LANCE AUX]]
*[[TYRREL STREET,St.George,Grenada|TYRREL STREET]]
*[[UPPER MORNE JALOUX,St.George,Grenada|UPPER MORNE JALOUX]]
*[[UPPER WOBURN,St.George,Grenada|UPPER WOBURN]]
*[[VENDOME,St.George,Grenada|VENDOME]]
*[[WELCOME,St.George,Grenada|WELCOME]]
*[[WHITE GUN,St.George,Grenada|WHITE GUN]]
*[[WHITE HALL, PARK LANE,St.George,Grenada|WHITE HALL, PARK LANE]]
*[[WILLIAMSON ROAD,St.George,Grenada|WILLIAMSON ROAD]]
*[[WILLIS,St.George,Grenada|WILLIS]]
*[[WOODLANDS,St.George,Grenada|WOODLANDS]]
*[[WOOLWICH ROAD,St.George,Grenada|WOOLWICH ROAD]]
*[[YOUNG STREET,St.George,Grenada|YOUNG STREET]]
==[[St.John,Grenada|St.John]]==
*[[BACK STREET,St.John,Grenada|BACK STREET]]
*[[BELVIDERE,St.John,Grenada|BELVIDERE]]
*[[BLACK BAY,St.John,Grenada|BLACK BAY]]
*[[BOYKES LANE, GOUYAVE,St.John,Grenada|BOYKES LANE, GOUYAVE]]
*[[BROOKLYN,St.John,Grenada|BROOKLYN]]
*[[BROTHERS ESTATE,St.John,Grenada|BROTHERS ESTATE]]
*[[CENTRAL DEPRADINE STREET,St.John,Grenada|CENTRAL DEPRADINE STREET]]
*[[CLOZIER,St.John,Grenada|CLOZIER]]
*[[CONCORD,St.John,Grenada|CONCORD]]
*[[CORNETS WALK, GOUYAVE,St.John,Grenada|CORNETS WALK, GOUYAVE]]
*[[COTTON BAILY,St.John,Grenada|COTTON BAILY]]
*[[D LANCE, UPPER DEPRADINE,St.John,Grenada|D LANCE, UPPER DEPRADINE]]
*[[DEPONTHIEU STREET,St.John,Grenada|DEPONTHIEU STREET]]
*[[DOUGALDSTON,St.John,Grenada|DOUGALDSTON]]
*[[EDWARD STREET, GOUYAVE,St.John,Grenada|EDWARD STREET, GOUYAVE]]
*[[FERGUSON'S LANE,St.John,Grenada|FERGUSON'S LANE]]
*[[FLORIDA,St.John,Grenada|FLORIDA]]
*[[GOUYAVE ESTATE,St.John,Grenada|GOUYAVE ESTATE]]
*[[GRAND ROY,St.John,Grenada|GRAND ROY]]
*[[HILLSVIEW, GOUYAVE,St.John,Grenada|HILLSVIEW, GOUYAVE]]
*[[LANGTON ROAD, GOUYAVE,St.John,Grenada|LANGTON ROAD, GOUYAVE]]
*[[LOWER DEPRADINE STREET,St.John,Grenada|LOWER DEPRADINE STREET]]
*[[MARIGOT,St.John,Grenada|MARIGOT]]
*[[MITCHELL'S LANE,St.John,Grenada|MITCHELL'S LANE]]
*[[MONGO ROAD, GOUYAVE ESTATE,St.John,Grenada|MONGO ROAD, GOUYAVE ESTATE]]
*[[MT. GRANBY,St.John,Grenada|MT. GRANBY]]
*[[MT. NESBIT,St.John,Grenada|MT. NESBIT]]
*[[NEW STREET, EDWARD STREET,St.John,Grenada|NEW STREET, EDWARD STREET]]
*[[NEW STREET, GOUYAVE,St.John,Grenada|NEW STREET, GOUYAVE]]
*[[PALMISTE,St.John,Grenada|PALMISTE]]
*[[QUEEN STREET, ST. JOHN'S,St.John,Grenada|QUEEN STREET, ST. JOHN'S]]
*[[RENNIE,St.John,Grenada|RENNIE]]
*[[RIVER LANE, GOUYAVE ESTATE,St.John,Grenada|RIVER LANE, GOUYAVE ESTATE]]
*[[RIVER LANE, GOUYAVE,St.John,Grenada|RIVER LANE, GOUYAVE]]
*[[ROSEMOUNT,St.John,Grenada|ROSEMOUNT]]
*[[SCHOOL LANE, GOUYAVE,St.John,Grenada|SCHOOL LANE, GOUYAVE]]
*[[ST BENOIT STREET, GOUYAVE,St.John,Grenada|ST BENOIT STREET, GOUYAVE]]
*[[ST DOMINIC STREET, GOUYAVE,St.John,Grenada|ST DOMINIC STREET, GOUYAVE]]
*[[ST DOMINIC, GOUYAVE,St.John,Grenada|ST DOMINIC, GOUYAVE]]
*[[ST FRANCIS, GOUYAVE,St.John,Grenada|ST FRANCIS, GOUYAVE]]
*[[ST PETERS STREET, GOUYAVE,St.John,Grenada|ST PETERS STREET, GOUYAVE]]
*[[ST PETERS, GOUYAVE,St.John,Grenada|ST PETERS, GOUYAVE]]
*[[ST. FRANCIS STREET,St.John,Grenada|ST. FRANCIS STREET]]
*[[ST. PETER STREET,St.John,Grenada|ST. PETER STREET]]
*[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]]
*[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]]
*[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]]
*[[UPPER DEPRADINE STREET,St.John,Grenada|UPPER DEPRADINE STREET]]
*[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]]
*[[VICTORIA ROAD, GOUYAVE,St.John,Grenada|VICTORIA ROAD, GOUYAVE]]
*[[VICTORIA STREET,St.John,Grenada|VICTORIA STREET]]
*[[WATERLOO,St.John,Grenada|WATERLOO]]
==[[St.David,Grenada|St.David]]==
*[[APRES TOUTE,St.David,Grenada|APRES TOUTE]]
*[[BAILLES BACOLET,St.David,Grenada|BAILLES BACOLET]]
*[[BEATON,St.David,Grenada|BEATON]]
*[[BELLE ISLE,St.David,Grenada|BELLE ISLE]]
*[[CHAMPFLEURS,St.David,Grenada|CHAMPFLEURS]]
*[[COALS GAPS,St.David,Grenada|COALS GAPS]]
*[[CORINTH,St.David,Grenada|CORINTH]]
*[[DUDMAR,St.David,Grenada|DUDMAR]]
*[[EPPIN FOREST,St.David,Grenada|EPPIN FOREST]]
*[[LA CALOHME,St.David,Grenada|LA CALOHME]]
*[[LA CALOME, NEW WESTERHALL,St.David,Grenada|LA CALOME, NEW WESTERHALL]]
*[[LA FEMME,St.David,Grenada|LA FEMME]]
*[[LA FLORETTA,St.David,Grenada|LA FLORETTA]]
*[[LA PASTORA,St.David,Grenada|LA PASTORA]]
*[[LA SAGESSE,St.David,Grenada|LA SAGESSE]]
*[[LA TANTE,St.David,Grenada|LA TANTE]]
*[[MARLMOUNT,St.David,Grenada|MARLMOUNT]]
*[[MARLMOUNT, GLEBE LAND,St.David,Grenada|MARLMOUNT, GLEBE LAND]]
*[[MAYANN, CONSTANTINE,St.David,Grenada|MAYANN, CONSTANTINE]]
*[[MINORCA,St.David,Grenada|MINORCA]]
*[[MON REPOS,St.David,Grenada|MON REPOS]]
*[[MT. AGNES,St.David,Grenada|MT. AGNES]]
*[[MT. DISIRE,St.David,Grenada|MT. DISIRE]]
*[[MYANN, CONSTANTINE,St.David,Grenada|MYANN, CONSTANTINE]]
*[[NEW WESTERHALL,St.David,Grenada|NEW WESTERHALL]]
*[[OLD WESTERHALL,St.David,Grenada|OLD WESTERHALL]]
*[[PERDMONTEMPS,St.David,Grenada|PERDMONTEMPS]]
*[[PETITE BACAYE, NEW,St.David,Grenada|PETITE BACAYE, NEW]]
*[[PETITE ESPERANCE,St.David,Grenada|PETITE ESPERANCE]]
*[[PETITE ETANG,St.David,Grenada|PETITE ETANG]]
*[[POMME ROSE,St.David,Grenada|POMME ROSE]]
*[[PROVIDENCE,St.David,Grenada|PROVIDENCE]]
*[[RED GATE,St.David,Grenada|RED GATE]]
*[[REDMUD,St.David,Grenada|REDMUD]]
*[[REQUIN,St.David,Grenada|REQUIN]]
*[[SLINGER STREET,St.David,Grenada|SLINGER STREET]]
*[[SYRACUSE,St.David,Grenada|SYRACUSE]]
*[[THEBAIDE,St.David,Grenada|THEBAIDE]]
*[[UPPER LAURA,St.David,Grenada|UPPER LAURA]]
*[[VINCENNES,St.David,Grenada|VINCENNES]]
*[[WESTERHALL POINT,St.David,Grenada|WESTERHALL POINT]]
*[[WINDSOR,St.David,Grenada|WINDSOR]]
*[[WINDSOR FOREST,St.David,Grenada|WINDSOR FOREST]]
==[[Carriacou and Petite Martinique,Grenada|Carriacou and Petite Martinique]]==
*[[BAYALEAU,Carriacou,Grenada|BAYALEAU]]
*[[BEAUSEJOUR,Carriacou,Grenada|BEAUSEJOUR]]
*[[BELAIR,Carriacou,Grenada|BELAIR]]
*[[BELLE VUE,Carriacou,Grenada|BELLE VUE]]
*[[BELMONT,Carriacou,Grenada|BELMONT]]
*[[BOGLES,Carriacou,Grenada|BOGLES]]
*[[BRUNSWICK,Carriacou,Grenada|BRUNSWICK]]
*[[CHURCH STREET, HILLSBOROUGH,Carriacou,Grenada|CHURCH STREET, HILLSBOROUGH]]
*[[CRAIGSTON,Carriacou,Grenada|CRAIGSTON]]
*[[CHERRY HILL,Carriacou,Grenada|CHERRY HILL]]
*[[DOVER,Carriacou,Grenada|DOVER]]
*[[DUMFRIES,Carriacou,Grenada|DUMFRIES]]
*[[GRAND BAY,Carriacou,Grenada|GRAND BAY]]
*[[HARVEY VALE,Carriacou,Grenada|HARVEY VALE]]
*[[HERMITAGE,Carriacou,Grenada|HERMITAGE]]
*[[HILLSBOROUGH,Carriacou,Grenada|HILLSBOROUGH]]
*[[L'ESTERRE,Carriacou,Grenada|L'ESTERRE]]
*[[LAURISTON,Carriacou,Grenada|LAURISTON]]
*[[LIMLAIR,Carriacou,Grenada|LIMLAIR]]
*[[MELDRUM,Carriacou,Grenada|MELDRUM]]
*[[MT. DISIRE,Carriacou,Grenada|MT. DISIRE]]
*[[MT. PLEASANT,Carriacou,Grenada|MT. PLEASANT]]
*[[MT. ST ERVANS, L'ESTERRIE,Carriacou,Grenada|MT ST ERVANS, L'ESTERRIE]]
*[[MT. ROYAL,Carriacou,Grenada|MT. ROYAL]]
*[[PROSPECT HALL,Carriacou,Grenada|PROSPECT HALL]]
*[[SIX ROADS,Carriacou,Grenada|SIX ROADS]]
*[[TOP HILL,Carriacou,Grenada|TOP HILL]]
*[[WINDWARD,Carriacou,Grenada|WINDWARD]]
*[[PETITE MARTINIQUE,PETIT MARTINIQUE,Grenada|PETITE MARTINIQUE]]
==[[St.Andrew,Grenada|St.Andrew]]==
*[[MT. FANN,St. Andrew,Grenada|MT. FANN]]
*[[ADELPHI,St.Andrew,Grenada|ADELPHI]]
*[[AHOMA,St.Andrew,Grenada|AHOMA]]
*[[BACK STRRET, TEMPE,St.Andrew,Grenada|BACK STRRET, TEMPE]]
*[[BALTHAZAR,St.Andrew,Grenada|BALTHAZAR]]
*[[BATTLE HILL,St.Andrew,Grenada|BATTLE HILL]]
*[[BEAUREGARD,St.Andrew,Grenada|BEAUREGARD]]
*[[BELLE VUE SOUTH,St.Andrew,Grenada|BELLE VUE SOUTH]]
*[[BELLEVUE,St.Andrew,Grenada|BELLEVUE]]
*[[BELVEDERE,St.Andrew,Grenada|BELVEDERE]]
*[[BEN JONES STREET,St.Andrew,Grenada|BEN JONES STREET]]
*[[BIRCHGROVE,St.Andrew,Grenada|BIRCHGROVE]]
*[[BYELANDS,St.Andrew,Grenada|BYELANDS]]
*[[CANAL ROAD,St.Andrew,Grenada|CANAL ROAD]]
*[[CARRIERE,St.Andrew,Grenada|CARRIERE]]
*[[CARRUTH,St.Andrew,Grenada|CARRUTH]]
*[[CHAPEL ROAD,St.Andrew,Grenada|CHAPEL ROAD]]
*[[COCOA ROAD,St.Andrew,Grenada|COCOA ROAD]]
*[[CODRONA,St.Andrew,Grenada|CODRONA]]
*[[CONFERENCE,St.Andrew,Grenada|CONFERENCE]]
*[[COOKHILL ROAD,St.Andrew,Grenada|COOKHILL ROAD]]
*[[CROCHU,St.Andrew,Grenada|CROCHU]]
*[[DE BLANDEAU,St.Andrew,Grenada|DE BLANDEAU]]
*[[DUNFERMLINE,St.Andrew,Grenada|DUNFERMLINE]]
*[[FORD HILL ROAD,St.Andrew,Grenada|FORD HILL ROAD]]
*[[GEORGE V. STREET,St.Andrew,Grenada|GEORGE V. STREET]]
*[[GLADSTONE ROAD,St.Andrew,Grenada|GLADSTONE ROAD]]
*[[GOUYAVE,St.Andrew,Grenada|GOUYAVE]]
*[[GRAND BACOLET,St.Andrew,Grenada|GRAND BACOLET]]
*[[GRAND BRAS,St.Andrew,Grenada|GRAND BRAS]]
*[[GRIFFIN LANE,St.Andrew,Grenada|GRIFFIN LANE]]
*[[HARFORD VILLAGE,St.Andrew,Grenada|HARFORD VILLAGE]]
*[[HARFORD VILLAGE, LOWER,St.Andrew,Grenada|HARFORD VILLAGE, LOWER]]
*[[HOPE,St.Andrew,Grenada|HOPE]]
*[[HOPE CITY,St.Andrew,Grenada|HOPE CITY]]
*[[LA DIGUE,St.Andrew,Grenada|LA DIGUE]]
*[[LA FILLETTE,St.Andrew,Grenada|LA FILLETTE]]
*[[LA POTERIE,St.Andrew,Grenada|LA POTERIE]]
*[[LOWER CAPITOL,St.Andrew,Grenada|LOWER CAPITOL]]
*[[LOWER HARFORD VILLAGE,St.Andrew,Grenada|LOWER HARFORD VILLAGE]]
*[[MAHOUT,St.Andrew,Grenada|MAHOUT]]
*[[MAMMA CANNES,St.Andrew,Grenada|MAMMA CANNES]]
*[[MARQUIS,St.Andrew,Grenada|MARQUIS]]
*[[MC NELLIE ALLEY, SAUTEURS,St.Andrew,Grenada|MC NELLIE ALLEY, SAUTEURS]]
*[[MC NEILLY, SAUTEURS,St.Andrew,Grenada|MC NEILLY, SAUTEURS]]
*[[MELDRUM,St.Andrew,Grenada|MELDRUM]]
*[[MIRABEAU,St.Andrew,Grenada|MIRABEAU]]
*[[MORNE LOUNGE,St.Andrew,Grenada|MORNE LOUNGE]]
*[[MOYAH,St.Andrew,Grenada|MOYAH]]
*[[MT ST ERVANS, LA DIGUE,St.Andrew,Grenada|MT ST ERVANS, LA DIGUE]]
*[[MT. CARMEL,St.Andrew,Grenada|MT. CARMEL]]
*[[MT. HORNE,St.Andrew,Grenada|MT. HORNE]]
*[[MT. PLEASANT,St.Andrew,Grenada|MT. PLEASANT]]
*[[MUNICH,St.Andrew,Grenada|MUNICH]]
*[[NEW HAMPSHIRE,St.Andrew,Grenada|NEW HAMPSHIRE]]
*[[NOELSVILLE,St.Andrew,Grenada|NOELSVILLE]]
*[[PARACLETE,St.Andrew,Grenada|PARACLETE]]
*[[PARADISE,St.Andrew,Grenada|PARADISE]]
*[[PEARLS,St.Andrew,Grenada|PEARLS]]
*[[PLATEAU,St.Andrew,Grenada|PLATEAU]]
*[[PLEASANCE,St.Andrew,Grenada|PLEASANCE]]
*[[POST ROYAL,St.Andrew,Grenada|POST ROYAL]]
*[[RETREAT,St.Andrew,Grenada|RETREAT]]
*[[RICHMOND,St.Andrew,Grenada|RICHMOND]]
*[[RIVULET LANE,St.Andrew,Grenada|RIVULET LANE]]
*[[SABB,St.Andrew,Grenada|SABB]]
*[[SALISBURY ROAD,St.Andrew,Grenada|SALISBURY ROAD]]
*[[SAMUEL AVENUE, CALIVIGNY,St.Andrew,Grenada|SAMUEL AVENUE, CALIVIGNY]]
*[[SEATON BROWNE STREET,St.Andrew,Grenada|SEATON BROWNE STREET]]
*[[SEATON JAMES STREET,St.Andrew,Grenada|SEATON JAMES STREET]]
*[[SENDALL STREET,St.Andrew,Grenada|SENDALL STREET]]
*[[SIMON,St.Andrew,Grenada|SIMON]]
*[[SNELL HALL,St.Andrew,Grenada|SNELL HALL]]
*[[SOUBISE,St.Andrew,Grenada|SOUBISE]]
*[[ST. CLOUDS,St.Andrew,Grenada|ST. CLOUDS]]
*[[ST. JAMES,St.Andrew,Grenada|ST. JAMES]]
*[[ST. JOHNS,St.Andrew,Grenada|ST. JOHNS]]
*[[TELESCOPE,St.Andrew,Grenada|TELESCOPE]]
*[[TIVOLI,St.Andrew,Grenada|TIVOLI]]
*[[TUILLIERIES,St.Andrew,Grenada|TUILLIERIES]]
*[[UNION,St.Andrew,Grenada|UNION]]
*[[UPPER CAPITOL,St.Andrew,Grenada|UPPER CAPITOL]]
*[[VILLAGE ROAD,St.Andrew,Grenada|VILLAGE ROAD]]
*[[WALKER,St.Andrew,Grenada|WALKER]]
*[[WELLS ROAD,St.Andrew,Grenada|WELLS ROAD]]
==[[St.Mark,Grenada|St.Mark]]==
*[[BEVERLY LANE, MADEYS,St.Mark,Grenada|BEVERLY LANE, MADEYS]]
*[[BOCAGE,St.Mark,Grenada|BOCAGE]]
*[[BOCAGE, BONAIR,St.Mark,Grenada|BOCAGE, BONAIR]]
*[[BONAIR,St.Mark,Grenada|BONAIR]]
*[[BONIAR ROAD, BONAIR,St.Mark,Grenada|BONIAR ROAD, BONAIR]]
*[[CHARLOTTE VALE,St.Mark,Grenada|CHARLOTTE VALE]]
*[[COAST GUARD,St.Mark,Grenada|COAST GUARD]]
*[[CRUICKSHANK ROAD,St.Mark,Grenada|CRUICKSHANK ROAD]]
*[[CRUICKSHANK ROAD, VICTORIA,St.Mark,Grenada|CRUICKSHANK ROAD, VICTORIA]]
*[[DARVEY,St.Mark,Grenada|DARVEY]]
*[[DE VILLA,St.Mark,Grenada|DE VILLA]]
*[[DIAMOND ESTATE,St.Mark,Grenada|DIAMOND ESTATE]]
*[[DIAMOND STREET, VICTORIA,St.Mark,Grenada|DIAMOND STREET, VICTORIA]]
*[[DIEGO PIECE,St.Mark,Grenada|DIEGO PIECE]]
*[[DUQUESNE,St.Mark,Grenada|DUQUESNE]]
*[[FAIR FIELD ROAD, VICTORIA,St.Mark,Grenada|FAIR FIELD ROAD, VICTORIA]]
*[[GALL STREET, VICTORIA,St.Mark,Grenada|GALL STREET, VICTORIA]]
*[[GROSS POINT, GROSS POINT VILLA,St.Mark,Grenada|GROSS POINT, GROSS POINT VILLA]]
*[[HARMONY HALL,St.Mark,Grenada|HARMONY HALL]]
*[[INDUSTRY,St.Mark,Grenada|INDUSTRY]]
*[[LA RESOURCE,St.Mark,Grenada|LA RESOURCE]]
*[[MARAN,St.Mark,Grenada|MARAN]]
*[[MT. EDGECOMBE,St.Mark,Grenada|MT. EDGECOMBE]]
*[[MUNRO STREET, VICTORIA,St.Mark,Grenada|MUNRO STREET, VICTORIA]]
*[[NON-PARIEL,St.Mark,Grenada|NON-PARIEL]]
*[[PETIT BOCAGE,St.Mark,Grenada|PETIT BOCAGE]]
*[[QUEEN STREET, VICTORIA,St.Mark,Grenada|QUEEN STREET, VICTORIA]]
*[[RESOURCE,St.Mark,Grenada|RESOURCE]]
*[[RESOURCE, RESOURCE,St.Mark,Grenada|RESOURCE, RESOURCE]]
*[[RIVER SALLEE,St.Mark,Grenada|RIVER SALLEE]]
*[[SAMARITAN,St.Mark,Grenada|SAMARITAN]]
*[[SAMARITAN, DIEGO PIECE,St.Mark,Grenada|SAMARITAN, DIEGO PIECE]]
*[[ST DAVID STREET, VICTORIA,St.Mark,Grenada|ST DAVID STREET, VICTORIA]]
*[[ST JOHN STREET, VICTORIA,St.Mark,Grenada|ST JOHN STREET, VICTORIA]]
*[[STEWAD COTTAGE,St.Mark,Grenada|STEWAD COTTAGE]]
*[[VICTORIA,St.Mark,Grenada|VICTORIA]]
==[[St.Patrick,Grenada|St.Patrick]]==
*[[BATHWAY,St.Patrick,Grenada|BATHWAY]]
*[[BAY ROAD, SAUTEURS,St.Patrick,Grenada|BAY ROAD, SAUTEURS]]
*[[BAY ROAD, SAUTEURS,St.Patrick,Grenada|BAY ROAD, SAUTEURS]]
*[[CHANTIMELLE,St.Patrick,Grenada|CHANTIMELLE]]
*[[CROSS STREET, SAUTEURS,St.Patrick,Grenada|CROSS STREET, SAUTEURS]]
*[[GLEBE LAND, SAUTEURS,St.Patrick,Grenada|GLEBE LAND, SAUTEURS]]
*[[GLEBE STREET, SAUTEURS,St.Patrick,Grenada|GLEBE STREET, SAUTEURS]]
*[[HERMITAGE,St.Patrick,Grenada|HERMITAGE]]
*[[HIGH GATE, MORNE FENDUE,St.Patrick,Grenada|HIGH GATE, MORNE FENDUE]]
*[[HIGH STREET, SAUTEURS,St.Patrick,Grenada|HIGH STREET, SAUTEURS]]
*[[HILL STREET, SAUTEURS,St.Patrick,Grenada|HILL STREET, SAUTEURS]]
*[[LA FORTUNE,St.Patrick,Grenada|LA FORTUNE]]
*[[LA TASTE,St.Patrick,Grenada|LA TASTE]]
*[[LEVERA,St.Patrick,Grenada|LEVERA]]
*[[MAHOUT, ROSE HILL,St.Patrick,Grenada|MAHOUT, ROSE HILL]]
*[[MAIN STREET, SAUTEURS,St.Patrick,Grenada|MAIN STREET, SAUTEURS]]
*[[MARLI,St.Patrick,Grenada|MARLI]]
*[[MC NEILLY ALLEY, MARLI,St.Patrick,Grenada|MC NEILLY ALLEY, MARLI]]
*[[MC NELLIE ALLEY, SAUTEURS,St.Patrick,Grenada|MC NELLIE ALLEY, SAUTEURS]]
*[[MORNE FENDUE,St.Patrick,Grenada|MORNE FENDUE]]
*[[MT. CRAVEN,St.Patrick,Grenada|MT. CRAVEN]]
*[[MT. RICH,St.Patrick,Grenada|MT. RICH]]
*[[MT. ROSE,St.Patrick,Grenada|MT. ROSE]]
*[[PEGGYS WHIM, HERMITAGE,St.Patrick,Grenada|PEGGYS WHIM, HERMITAGE]]
*[[PLAINS,St.Patrick,Grenada|PLAINS]]
*[[POINTZFIELD,St.Patrick,Grenada|POINTZFIELD]]
*[[PROSPECT,St.Patrick,Grenada|PROSPECT]]
*[[RED HEAD STREET, LA FORTUNE,St.Patrick,Grenada|RED HEAD STREET, LA FORTUNE]]
*[[RED HEAD STREET, SAUTEURS,St.Patrick,Grenada|RED HEAD STREET, SAUTEURS]]
*[[RED MUD,St.Patrick,Grenada|RED MUD]]
*[[RIVER SALLEE,St.Patrick,Grenada|RIVER SALLEE]]
*[[ROSE HILL,St.Patrick,Grenada|ROSE HILL]]
*[[SALISBURY RD, SAUTEURS,St.Patrick,Grenada|SALISBURY RD, SAUTEURS]]
*[[SALISBURY STREET, SAUTEURS,St.Patrick,Grenada|SALISBURY STREET, SAUTEURS]]
*[[SAUTEURS,St.Patrick,Grenada|SAUTEURS]]
*[[THE VILLA, SAUTEURS,St.Patrick,Grenada|THE VILLA, SAUTEURS]]
== Uncategorized==
*[[ADAM'S ALLEY,,Grenada|ADAM'S ALLEY]]
*[[AFRICA,,Grenada|AFRICA]]
*[[APSLEY HILL,,Grenada|APSLEY HILL]]
*[[BAYROAD,,Grenada|BAYROAD]]
*[[BLAIZE,,Grenada|BLAIZE]]
*[[BLUGGO,,Grenada|BLUGGO]]
*[[BYWAY,,Grenada|BYWAY]]
*[[CASTIGNE,,Grenada|CASTIGNE]]
*[[CEDARS,,Grenada|CEDARS]]
*[[CELESTE,,Grenada|CELESTE]]
*[[CENTRAL DEPRADINE, GOUYAVE,,Grenada|CENTRAL DEPRADINE, GOUYAVE]]
*[[CHADDEAU,,Grenada|CHADDEAU]]
*[[CHANCERY STREET, MUNRO,,Grenada|CHANCERY STREET, MUNRO]]
*[[CHAPEL'S LANE,,Grenada|CHAPEL'S LANE]]
*[[CHURCH HILL ROAD,,Grenada|CHURCH HILL ROAD]]
*[[CONTENT,,Grenada|CONTENT]]
*[[COOPER'S HILL,,Grenada|COOPER'S HILL]]
*[[CORNWALL STREET, SAUTEURS,,Grenada|CORNWALL STREET, SAUTEURS]]
*[[DE SILLES,,Grenada|DE SILLES]]
*[[DEHAR, GLEBE LAND,,Grenada|DEHAR, GLEBE LAND]]
*[[DOCTOR BELLE,,Grenada|DOCTOR BELLE]]
*[[DOTHAN ESTATE,,Grenada|DOTHAN ESTATE]]
*[[DURRANT ROAD,,Grenada|DURRANT ROAD]]
*[[FENCE,,Grenada|FENCE]]
*[[FERGUSONS LANE, GOUYAVE,,Grenada|FERGUSONS LANE, GOUYAVE]]
*[[FIELD STREET,,Grenada|FIELD STREET]]
*[[FOUNTAIN,,Grenada|FOUNTAIN]]
*[[GLEBE LAND, SAUTEURS,,Grenada|GLEBE LAND, SAUTEURS]]
*[[GRANLETTE,,Grenada|GRANLETTE]]
*[[GRAVEL STREET, VENDOME,,Grenada|GRAVEL STREET, VENDOME]]
*[[GROSS POINT VILLA,,Grenada|GROSS POINT VILLA]]
*[[GUPO,,Grenada|GUPO]]
*[[HENRY STREET,,Grenada|HENRY STREET]]
*[[HERMON,,Grenada|HERMON]]
*[[JONES ROAD,,Grenada|JONES ROAD]]
*[[LOWER CONFERENCE,,Grenada|LOWER CONFERENCE]]
*[[LOWER DEPRADINE, GOUYAVE,,Grenada|LOWER DEPRADINE, GOUYAVE]]
*[[LOWER LAURA,,Grenada|LOWER LAURA]]
*[[LYDER,,Grenada|LYDER]]
*[[MADEYS,,Grenada|MADEYS]]
*[[MAHOUT, SAUTEURS,,Grenada|MAHOUT, SAUTEURS]]
*[[MAIN STREET, SAUTEURS,,Grenada|MAIN STREET, SAUTEURS]]
*[[MALIGNON,,Grenada|MALIGNON]]
*[[MALONEY STREET,,Grenada|MALONEY STREET]]
*[[MARINE VILLA,,Grenada|MARINE VILLA]]
*[[MAUCHETTE,,Grenada|MAUCHETTE]]
*[[MAULTY,,Grenada|MAULTY]]
*[[MC LAINE ALLEY, SAUTEURS,,Grenada|MC LAINE ALLEY, SAUTEURS]]
*[[MEADOW,,Grenada|MEADOW]]
*[[MELROSE,,Grenada|MELROSE]]
*[[MT. ALEXANDER,,Grenada|MT. ALEXANDER]]
*[[MT. ANON,,Grenada|MT. ANON]]
*[[MT. CUMMA,,Grenada|MT. CUMMA]]
*[[MT. FELIX,,Grenada|MT. FELIX]]
*[[MT. PLASIR,,Grenada|MT. PLASIR]]
*[[MT. REUIL,,Grenada|MT. REUIL]]
*[[MT. RODNEY,,Grenada|MT. RODNEY]]
*[[MT. SEALEY,,Grenada|MT. SEALEY]]
*[[MT. WILLIAMS,,Grenada|MT. WILLIAMS]]
*[[MUNRO STREET,,Grenada|MUNRO STREET]]
*[[MUNROE STREET, VICTORIA,,Grenada|MUNROE STREET, VICTORIA]]
*[[NETTLE POINT,,Grenada|NETTLE POINT]]
*[[NEW GARDENS,,Grenada|NEW GARDENS]]
*[[OTTLEY'S LANE,,Grenada|OTTLEY'S LANE]]
*[[PARK ESTATE,,Grenada|PARK ESTATE]]
*[[PENNY RETREAT,,Grenada|PENNY RETREAT]]
*[[SAMUELS AVENUE,,Grenada|SAMUELS AVENUE]]
*[[SAUTEURS, MAHOUT,,Grenada|SAUTEURS, MAHOUT]]
*[[SCHOOL LANE,,Grenada|SCHOOL LANE]]
*[[ST. BENOIT'S STREET,,Grenada|ST. BENOIT'S STREET]]
*[[ST. CYR,,Grenada|ST. CYR]]
*[[ST. DAVID STREET,,Grenada|ST. DAVID STREET]]
*[[ST. DOMINIC'S ST.,,Grenada|ST. DOMINIC'S ST.]]
*[[TABOR,,Grenada|TABOR]]
*[[TAYBAKAY,,Grenada|TAYBAKAY]]
*[[TAYLOR,,Grenada|TAYLOR]]
*[[TETMUND,,Grenada|TETMUND]]
*[[THE SUMMIT,,Grenada|THE SUMMIT]]
*[[THE VILLA,,Grenada|THE VILLA]]
*[[THE VILLA, THE ROCK,,Grenada|THE VILLA, THE ROCK]]
*[[TOUS CONGO,,Grenada|TOUS CONGO]]
*[[VINEYARD,,Grenada|VINEYARD]]
*[[WALTHAM,,Grenada|WALTHAM]]
*[[WOODFORD,,Grenada|WOODFORD]]
d25c1e6042f42ba0fd381e7e251264f672c2ce40
176
175
2022-07-21T23:41:18Z
Wikiricky
1
updated more places
wikitext
text/x-wiki
This is a list of populated villages, towns, settlements, and streets in Grenada. Many of the village names in Grenada are based upon the names of plantations. Grenada has 7 Parishes
==[[St.George,Grenada|St.George]]==
*[[ANNANDALE,St.George,Grenada|ANNANDALE]]
*[[ARCHIBALD AVENUE,St.George,Grenada|ARCHIBALD AVENUE]]
*[[BACK STREET, TEMPE,St.George,Grenada|BACK STREET, TEMPE]]
*[[BAIN'S ALLEY,St.George,Grenada|BAIN'S ALLEY]]
*[[BEAULIEU,St.George,Grenada|BEAULIEU]]
*[[BELMONT,St.George,Grenada|BELMONT]]
*[[BLACK FOREST, VENDOME,St.George,Grenada|BLACK FOREST, VENDOME]]
*[[BLACKBURN ALLEY,St.George,Grenada|BLACKBURN ALLEY]]
*[[BOCA,St.George,Grenada|BOCA]]
*[[BON ACCORD ESTATE,St.George,Grenada|BON ACCORD ESTATE]]
*[[BOTANICAL GARDENS,St.George,Grenada|BOTANICAL GARDENS]]
*[[BRIGG'S ALLEY,St.George,Grenada|BRIGG'S ALLEY]]
*[[BRIZAN,St.George,Grenada|BRIZAN]]
*[[CAFE,St.George,Grenada|CAFE]]
*[[CALABASH ALLEY,St.George,Grenada|CALABASH ALLEY]]
*[[CALIVIGNY,St.George,Grenada|CALIVIGNY]]
*[[CALLISTE,St.George,Grenada|CALLISTE]]
*[[CARENAGE,St.George,Grenada|CARENAGE]]
*[[CARRIERE,St.George,Grenada|CARRIERE]]
*[[CEMETERY HILL,St.George,Grenada|CEMETERY HILL]]
*[[CHANTILLY, TEMPE,St.George,Grenada|CHANTILLY, TEMPE]]
*[[CHEMIN RIVER,St.George,Grenada|CHEMIN RIVER]]
*[[CHERRY HILL,St.George,Grenada|CHERRY HILL]]
*[[CHURCH STREET,St.George,Grenada|CHURCH STREET]]
*[[CIRCULAR DRIVE, FREQUENTE,St.George,Grenada|CIRCULAR DRIVE, FREQUENTE]]
*[[CLARKES COURT BAY,St.George,Grenada|CLARKES COURT BAY,]]
*[[COCOA ROAD, MARIAN,St.George,Grenada|COCOA ROAD, MARIAN]]
*[[CONFER,St.George,Grenada|CONFER]]
*[[CONSTANTINE,St.George,Grenada|CONSTANTINE]]
*[[CORBEAU TOWN,St.George,Grenada|CORBEAU TOWN]]
*[[COX ALLEY,St.George,Grenada|COX ALLEY]]
*[[CREIGHTON,St.George,Grenada|CREIGHTON]]
*[[CROSS STREET,St.George,Grenada|CROSS STREET]]
*[[D'ARBEAU,St.George,Grenada|D'ARBEAU]]
*[[DE FAUX,St.George,Grenada|DE FAUX]]
*[[DEPONTHIEU STREET,St.George,Grenada|DEPONTHIEU STREET]]
*[[DE VILLA, BLACKBURN ALLEY,St.George,Grenada|DE VILLA, BLACKBURN ALLEY]]
*[[DIXIE, SPRINGS,St.George,Grenada|DIXIE, SPRINGS]]
*[[DUSTY HIGHWAY, GRAND ANSE,St.George,Grenada|DUSTY HIGHWAY, GRAND ANSE]]
*[[EDGEMOND POINT,St.George,Grenada|EDGEMOND POINT]]
*[[FALL EDGE, GRAND ANSE,St.George,Grenada|FALL EDGE, GRAND ANSE]]
*[[FENTON VILLAGE,St.George,Grenada|FENTON VILLAGE]]
*[[FONTENOY,St.George,Grenada|FONTENOY]]
*[[FORT JUEDY,St.George,Grenada|FORT JUEDY]]
*[[FREQUENTE,St.George,Grenada|FREQUENTE]]
*[[GOLF COURSE,St.George,Grenada|GOLF COURSE]]
*[[GOOD HOPE,St.George,Grenada|GOOD HOPE]]
*[[GORE STREET,St.George,Grenada|GORE STREET]]
*[[GRAND ANSE,St.George,Grenada|GRAND ANSE]]
*[[GRAND ANSE ESTATE, LANCE AUX,St.George,Grenada|GRAND ANSE ESTATE, LANCE AUX]]
*[[GRAND ANSE HOUSING SCHEME,St.George,Grenada|GRAND ANSE HOUSING SCHEME]]
*[[GRAND ANSE VALLEY,St.George,Grenada|GRAND ANSE VALLEY]]
*[[GRAND ETANG ROAD,St.George,Grenada|GRAND ETANG ROAD]]
*[[GRAND MAL,St.George,Grenada|GRAND MAL]]
*[[GRANTON,St.George,Grenada|GRANTON]]
*[[GREEN STREET,St.George,Grenada|GREEN STREET]]
*[[GRENVILLE STREET,St.George,Grenada|GRENVILLE STREET]]
*[[GRENVILLE VALE,St.George,Grenada|GRENVILLE VALE]]
*[[GREY STONE, BELMONT,St.George,Grenada|GREY STONE, BELMONT]]
*[[H.A BLAIZE STREET,St.George,Grenada|H.A BLAIZE STREET]]
*[[HADDON SMITH STREET,St.George,Grenada|HADDON SMITH STREET]]
*[[HALIFAX STREET,St.George,Grenada|HALIFAX STREET]]
*[[HAPPY HILL,St.George,Grenada|HAPPY HILL]]
*[[HILL TOP, CALIVIGNY,St.George,Grenada|HILL TOP, CALIVIGNY]]
*[[HILLS ROAD,St.George,Grenada|HILLS ROAD]]
*[[HILLSBOROUGH STREET,St.George,Grenada|HILLSBOROUGH STREET]]
*[[HOPE VALE,St.George,Grenada|HOPE VALE]]
*[[INDEPENDENCE AVENUE,St.George,Grenada|INDEPENDENCE AVENUE]]
*[[JEAN ANGLIAS,St.George,Grenada|JEAN ANGLIAS]]
*[[JUMBIE,St.George,Grenada|JUMBIE]]
*[[KAFE BEAU HILL,St.George,Grenada|KAFE BEAU HILL]]
*[[LA BORIE,St.George,Grenada|LA BORIE]]
*[[LA MODE,St.George,Grenada|LA MODE]]
*[[LAGOON ROAD,St.George,Grenada|LAGOON ROAD]]
*[[LANCE AUX EPINES,St.George,Grenada|LANCE AUX EPINES]]
*[[LONG GUTTER,St.George,Grenada|LONG GUTTER]]
*[[LOWER MORNE JALOUX,St.George,Grenada|LOWER MORNE JALOUX]]
*[[LOWER WOBURN,St.George,Grenada|LOWER WOBURN]]
*[[LOWTHER'S LANE,St.George,Grenada|LOWTHER'S LANE]]
*[[LUCAS STREET,St.George,Grenada|LUCAS STREET]]
*[[MALONEY STREET,St.George,Grenada|MALONEY STREET]]
*[[MANGO, NEW HAMPSHIRE,St.George,Grenada|MANGO, NEW HAMPSHIRE]]
*[[MARIAN,St.George,Grenada|MARIAN]]
*[[MARKET HILL,St.George,Grenada|MARKET HILL]]
*[[MARRAST HILL,St.George,Grenada|MARRAST HILL]]
*[[MAURICE BISHOP HIGHWAY, GRAND ANSE,St.George,Grenada|MAURICE BISHOP HIGHWAY, GRAND ANSE]]
*[[MAURICE BISHOP HWY, GRAND,St.George,Grenada|MAURICE BISHOP HWY, GRAND]]
*[[MELVILLE STREET,St.George,Grenada|MELVILLE STREET]]
*[[MOLINIERE,St.George,Grenada|MOLINIERE]]
*[[MONT TOUTE,St.George,Grenada|MONT TOUTE]]
*[[MORNE JALOUX,St.George,Grenada|MORNE JALOUX]]
*[[MORNE ROUGE,St.George,Grenada|MORNE ROUGE]]
*[[MORTLEY ROAD,St.George,Grenada|MORTLEY ROAD]]
*[[MT. AIRY,St.George,Grenada|MT. AIRY]]
*[[MT. GAY,St.George,Grenada|MT. GAY]]
*[[MT. HARTMAN,St.George,Grenada|MT. HARTMAN]]
*[[MT. MORITZ,St.George,Grenada|MT. MORITZ]]
*[[MT. PARNASSUS,St.George,Grenada|MT. PARNASSUS]]
*[[MT. RUSH,St.George,Grenada|MT. RUSH]]
*[[MT. WHELDALE,St.George,Grenada|MT. WHELDALE]]
*[[OBSERVATORY ROAD,St.George,Grenada|OBSERVATORY ROAD]]
*[[OLD FORT,St.George,Grenada|OLD FORT]]
*[[PADDOCK,St.George,Grenada|PADDOCK]]
*[[PARADE,St.George,Grenada|PARADE]]
*[[PARK LANE,St.George,Grenada|PARK LANE]]
*[[PERSEVERANCE,St.George,Grenada|PERSEVERANCE]]
*[[PETERSFIELD,St.George,Grenada|PETERSFIELD]]
*[[POINT SALINES,St.George,Grenada|POINT SALINES]]
*[[QUEEN'S PARK,St.George,Grenada|QUEEN'S PARK]]
*[[RADIX, MT. PARNASSUS,St.George,Grenada|RADIX, MT. PARNASSUS]]
*[[RAVINE, MT. GAY,St.George,Grenada|RAVINE, MT. GAY]]
*[[RICHMOND HILL,St.George,Grenada|RICHMOND HILL]]
*[[RIVER ROAD,St.George,Grenada|RIVER ROAD]]
*[[ROEBUCK,St.George,Grenada|ROEBUCK]]
*[[SANS SOUCI,St.George,Grenada|SANS SOUCI]]
*[[SCOTT STREET,St.George,Grenada|SCOTT STREET]]
*[[SHENDA,St.George,Grenada|SHENDA]]
*[[SIMMONS STREET,St.George,Grenada|SIMMONS STREET]]
*[[SNUG CORNER,St.George,Grenada|SNUG CORNER]]
*[[SPRINGS,St.George,Grenada|SPRINGS]]
*[[ST. GEORGE ESTATE,St.George,Grenada|ST. GEORGE ESTATE]]
*[[ST. JOHN STREET,St.George,Grenada|ST. JOHN STREET]]
*[[ST. JUILLE STREET,St.George,Grenada|ST. JUILLE STREET]]
*[[ST.PAUL'S,St.George,Grenada|ST.PAUL'S]]
*[[SUNSET VALLEY, POINT SALINES,St.George,Grenada|SUNSET VALLEY, POINT SALINES]]
*[[TANTEEN, TANTEEN TERRACE,St.George,Grenada|TANTEEN, TANTEEN TERRACE]]
*[[TEMPE,St.George,Grenada|TEMPE]]
*[[TETMUND,St.George,Grenada|TETMUND]]
*[[THE BOCAS,St.George,Grenada|THE BOCAS]]
*[[THE GREENS,St.George,Grenada|THE GREENS]]
*[[THE LIMES,St.George,Grenada|THE LIMES]]
*[[THE STONES, GRAND ANSE,St.George,Grenada|THE STONES, GRAND ANSE]]
*[[THE STONES, NEW HAMPSHIRE,St.George,Grenada|THE STONES, NEW HAMPSHIRE]]
*[[THE VILLA, LONG GUTTER,St.George,Grenada|THE VILLA, LONG GUTTER]]
*[[TRANQUIL LANE,St.George,Grenada|TRANQUIL LANE]]
*[[TRUE BLUE,St.George,Grenada|TRUE BLUE]]
*[[TRYNE ALLEY,St.George,Grenada|TRYNE ALLEY]]
*[[TURTLE BACK DRIVE, LANCE AUX,St.George,Grenada|TURTLE BACK DRIVE, LANCE AUX]]
*[[TYRREL STREET,St.George,Grenada|TYRREL STREET]]
*[[UPPER MORNE JALOUX,St.George,Grenada|UPPER MORNE JALOUX]]
*[[UPPER WOBURN,St.George,Grenada|UPPER WOBURN]]
*[[VENDOME,St.George,Grenada|VENDOME]]
*[[WELCOME,St.George,Grenada|WELCOME]]
*[[WHITE GUN,St.George,Grenada|WHITE GUN]]
*[[WHITE HALL, PARK LANE,St.George,Grenada|WHITE HALL, PARK LANE]]
*[[WILLIAMSON ROAD,St.George,Grenada|WILLIAMSON ROAD]]
*[[WILLIS,St.George,Grenada|WILLIS]]
*[[WOODLANDS,St.George,Grenada|WOODLANDS]]
*[[WOOLWICH ROAD,St.George,Grenada|WOOLWICH ROAD]]
*[[YOUNG STREET,St.George,Grenada|YOUNG STREET]]
==[[St.John,Grenada|St.John]]==
*[[BACK STREET,St.John,Grenada|BACK STREET]]
*[[BELVIDERE,St.John,Grenada|BELVIDERE]]
*[[BLACK BAY,St.John,Grenada|BLACK BAY]]
*[[BOYKES LANE, GOUYAVE,St.John,Grenada|BOYKES LANE, GOUYAVE]]
*[[BROOKLYN,St.John,Grenada|BROOKLYN]]
*[[BROTHERS ESTATE,St.John,Grenada|BROTHERS ESTATE]]
*[[CENTRAL DEPRADINE STREET,St.John,Grenada|CENTRAL DEPRADINE STREET]]
*[[CLOZIER,St.John,Grenada|CLOZIER]]
*[[CONCORD,St.John,Grenada|CONCORD]]
*[[CORNETS WALK, GOUYAVE,St.John,Grenada|CORNETS WALK, GOUYAVE]]
*[[COTTON BAILY,St.John,Grenada|COTTON BAILY]]
*[[D LANCE, UPPER DEPRADINE,St.John,Grenada|D LANCE, UPPER DEPRADINE]]
*[[DOCTOR BELLE,St.John,Grenada|DOCTOR BELLE]]
*[[DOUGALDSTON,St.John,Grenada|DOUGALDSTON]]
*[[EDWARD STREET, GOUYAVE,St.John,Grenada|EDWARD STREET, GOUYAVE]]
*[[FERGUSON'S LANE,St.John,Grenada|FERGUSON'S LANE]]
*[[FLORIDA,St.John,Grenada|FLORIDA]]
*[[GOUYAVE ESTATE,St.John,Grenada|GOUYAVE ESTATE]]
*[[GRAND ROY,St.John,Grenada|GRAND ROY]]
*[[HILLSVIEW, GOUYAVE,St.John,Grenada|HILLSVIEW, GOUYAVE]]
*[[LANGTON ROAD, GOUYAVE,St.John,Grenada|LANGTON ROAD, GOUYAVE]]
*[[LOWER DEPRADINE STREET,St.John,Grenada|LOWER DEPRADINE STREET]]
*[[MARIGOT,St.John,Grenada|MARIGOT]]
*[[MITCHELL'S LANE,St.John,Grenada|MITCHELL'S LANE]]
*[[MONGO ROAD, GOUYAVE ESTATE,St.John,Grenada|MONGO ROAD, GOUYAVE ESTATE]]
*[[MT. GRANBY,St.John,Grenada|MT. GRANBY]]
*[[MT. NESBIT,St.John,Grenada|MT. NESBIT]]
*[[NEW STREET, EDWARD STREET,St.John,Grenada|NEW STREET, EDWARD STREET]]
*[[NEW STREET, GOUYAVE,St.John,Grenada|NEW STREET, GOUYAVE]]
*[[PALMISTE,St.John,Grenada|PALMISTE]]
*[[QUEEN STREET, ST. JOHN'S,St.John,Grenada|QUEEN STREET, ST. JOHN'S]]
*[[RENNIE,St.John,Grenada|RENNIE]]
*[[RIVER LANE, GOUYAVE ESTATE,St.John,Grenada|RIVER LANE, GOUYAVE ESTATE]]
*[[RIVER LANE, GOUYAVE,St.John,Grenada|RIVER LANE, GOUYAVE]]
*[[ROSEMOUNT,St.John,Grenada|ROSEMOUNT]]
*[[SCHOOL LANE, GOUYAVE,St.John,Grenada|SCHOOL LANE, GOUYAVE]]
*[[ST BENOIT STREET, GOUYAVE,St.John,Grenada|ST BENOIT STREET, GOUYAVE]]
*[[ST DOMINIC STREET, GOUYAVE,St.John,Grenada|ST DOMINIC STREET, GOUYAVE]]
*[[ST DOMINIC, GOUYAVE,St.John,Grenada|ST DOMINIC, GOUYAVE]]
*[[ST FRANCIS, GOUYAVE,St.John,Grenada|ST FRANCIS, GOUYAVE]]
*[[ST PETERS STREET, GOUYAVE,St.John,Grenada|ST PETERS STREET, GOUYAVE]]
*[[ST PETERS, GOUYAVE,St.John,Grenada|ST PETERS, GOUYAVE]]
*[[ST. FRANCIS STREET,St.John,Grenada|ST. FRANCIS STREET]]
*[[ST. PETER STREET,St.John,Grenada|ST. PETER STREET]]
*[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]]
*[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]]
*[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]]
*[[UPPER DEPRADINE STREET,St.John,Grenada|UPPER DEPRADINE STREET]]
*[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]]
*[[VICTORIA ROAD, GOUYAVE,St.John,Grenada|VICTORIA ROAD, GOUYAVE]]
*[[VICTORIA STREET,St.John,Grenada|VICTORIA STREET]]
*[[WATERLOO,St.John,Grenada|WATERLOO]]
*[[WOODFORD,St.John,Grenada|WOODFORD]]
==[[St.David,Grenada|St.David]]==
*[[APRES TOUTE,St.David,Grenada|APRES TOUTE]]
*[[BAILLES BACOLET,St.David,Grenada|BAILLES BACOLET]]
*[[BEATON,St.David,Grenada|BEATON]]
*[[BELLE ISLE,St.David,Grenada|BELLE ISLE]]
*[[BELLE VUE,St.David,Grenada|BELLE VUE]]
*[[BOCAGE,St.David,Grenada|BOCAGE]]
*[[CHAMPFLEURS,St.David,Grenada|CHAMPFLEURS]]
*[[COALS GAPS,St.David,Grenada|COALS GAPS]]
*[[CONTENT,St.David,Grenada|CONTENT]]
*[[CORINTH,St.David,Grenada|CORINTH]]
*[[DUDMAR,St.David,Grenada|DUDMAR]]
*[[EPPIN FOREST,St.David,Grenada|EPPIN FOREST]]
*[[HARMONY HALL,St.David,Grenada|HARMONY HALL]]
*[[LA CALOHME,St.David,Grenada|LA CALOHME]]
*[[LA FEMME,St.David,Grenada|LA FEMME]]
*[[LA FLORETTA,St.David,Grenada|LA FLORETTA]]
*[[LA PASTORA,St.David,Grenada|LA PASTORA]]
*[[LA SAGESSE,St.David,Grenada|LA SAGESSE]]
*[[LA TANTE,St.David,Grenada|LA TANTE]]
*[[MARLMOUNT,St.David,Grenada|MARLMOUNT]]
*[[MARDIGRAS,St.David,Grenada|MARDIGRAS]]
*[[MARLMOUNT, GLEBE LAND,St.David,Grenada|MARLMOUNT, GLEBE LAND]]
*[[MAULTY,St.David,Grenada|MAULTY]]
*[[MAYANN, CONSTANTINE,St.David,Grenada|MAYANN, CONSTANTINE]]
*[[MINORCA,St.David,Grenada|MINORCA]]
*[[MORNE DELICE,St.David,Grenada|MORNE DELICE]]
*[[MON REPOS,St.David,Grenada|MON REPOS]]
*[[MT. AGNES,St.David,Grenada|MT. AGNES]]
*[[MT. DISIRE,St.David,Grenada|MT. DISIRE]]
*[[MT. ROSE,St.David,Grenada|MT. ROSE]]
*[[MYANN, CONSTANTINE,St.David,Grenada|MYANN, CONSTANTINE]]
*[[NEW WESTERHALL,St.David,Grenada|NEW WESTERHALL]]
*[[OLD WESTERHALL,St.David,Grenada|OLD WESTERHALL]]
*[[PERDMONTEMPS,St.David,Grenada|PERDMONTEMPS]]
*[[PETITE BACAYE, NEW,St.David,Grenada|PETITE BACAYE, NEW]]
*[[PETITE ESPERANCE,St.David,Grenada|PETITE ESPERANCE]]
*[[PETITE ETANG,St.David,Grenada|PETITE ETANG]]
*[[POMME ROSE,St.David,Grenada|POMME ROSE]]
*[[RED GATE,St.David,Grenada|RED GATE]]
*[[REDMUD,St.David,Grenada|REDMUD]]
*[[REQUIN,St.David,Grenada|REQUIN]]
*[[SLINGER STREET,St.David,Grenada|SLINGER STREET]]
*[[SYRACUSE,St.David,Grenada|SYRACUSE]]
*[[THEBAIDE,St.David,Grenada|THEBAIDE]]
*[[TABOR,St.David,Grenada|TABOR]]
*[[UPPER LAURA,St.David,Grenada|UPPER LAURA]]
*[[VINCENNES,St.David,Grenada|VINCENNES]]
*[[WESTERHALL POINT,St.David,Grenada|WESTERHALL POINT]]
*[[WINDSOR,St.David,Grenada|WINDSOR]]
*[[WINDSOR FOREST,St.David,Grenada|WINDSOR FOREST]]
==[[Carriacou and Petite Martinique,Grenada|Carriacou and Petite Martinique]]==
*[[BAYALEAU,Carriacou,Grenada|BAYALEAU]]
*[[BEAUSEJOUR,Carriacou,Grenada|BEAUSEJOUR]]
*[[BELAIR,Carriacou,Grenada|BELAIR]]
*[[BELLE VUE,Carriacou,Grenada|BELLE VUE]]
*[[BELMONT,Carriacou,Grenada|BELMONT]]
*[[BOGLES,Carriacou,Grenada|BOGLES]]
*[[BRUNSWICK,Carriacou,Grenada|BRUNSWICK]]
*[[CHURCH STREET, HILLSBOROUGH,Carriacou,Grenada|CHURCH STREET, HILLSBOROUGH]]
*[[CRAIGSTON,Carriacou,Grenada|CRAIGSTON]]
*[[CHERRY HILL,Carriacou,Grenada|CHERRY HILL]]
*[[DOVER,Carriacou,Grenada|DOVER]]
*[[DUMFRIES,Carriacou,Grenada|DUMFRIES]]
*[[GRAND BAY,Carriacou,Grenada|GRAND BAY]]
*[[HARVEY VALE,Carriacou,Grenada|HARVEY VALE]]
*[[HERMITAGE,Carriacou,Grenada|HERMITAGE]]
*[[HILLSBOROUGH,Carriacou,Grenada|HILLSBOROUGH]]
*[[L'ESTERRE,Carriacou,Grenada|L'ESTERRE]]
*[[LAURISTON,Carriacou,Grenada|LAURISTON]]
*[[LIMLAIR,Carriacou,Grenada|LIMLAIR]]
*[[MELDRUM,Carriacou,Grenada|MELDRUM]]
*[[MT. DISIRE,Carriacou,Grenada|MT. DISIRE]]
*[[MT. PLEASANT,Carriacou,Grenada|MT. PLEASANT]]
*[[MT. ST ERVANS, L'ESTERRIE,Carriacou,Grenada|MT ST ERVANS, L'ESTERRIE]]
*[[MT. ROYAL,Carriacou,Grenada|MT. ROYAL]]
*[[PROSPECT HALL,Carriacou,Grenada|PROSPECT HALL]]
*[[SIX ROADS,Carriacou,Grenada|SIX ROADS]]
*[[TOP HILL,Carriacou,Grenada|TOP HILL]]
*[[WINDWARD,Carriacou,Grenada|WINDWARD]]
*[[PETITE MARTINIQUE,PETIT MARTINIQUE,Grenada|PETITE MARTINIQUE]]
==[[St.Andrew,Grenada|St.Andrew]]==
*[[MT. FANN,St. Andrew,Grenada|MT. FANN]]
*[[ADELPHI,St.Andrew,Grenada|ADELPHI]]
*[[AHOMA,St.Andrew,Grenada|AHOMA]]
*[[BALTHAZAR,St.Andrew,Grenada|BALTHAZAR]]
*[[BAYROAD,St.Andrew,Grenada|BAYROAD]]
*[[BLAIZE,St.Andrew,Grenada|BLAIZE]]
*[[BAMBOO,St.Andrew,Grenada|BAMBOO]]
*[[BATTLE HILL,St.Andrew,Grenada|BATTLE HILL]]
*[[BEAUREGARD,St.Andrew,Grenada|BEAUREGARD]]
*[[BELLE VUE,St.Andrew,Grenada|BELLE VUE]]
*[[BELVEDERE,St.Andrew,Grenada|BELVEDERE]]
*[[BEN JONES STREET,St.Andrew,Grenada|BEN JONES STREET]]
*[[BIRCHGROVE,St.Andrew,Grenada|BIRCHGROVE]]
*[[BYELANDS,St.Andrew,Grenada|BYELANDS]]
*[[CAFE,St.Andrew,Grenada|CAFE]]
*[[CANAL ROAD,St.Andrew,Grenada|CANAL ROAD]]
*[[CARRIERE,St.Andrew,Grenada|CARRIERE]]
*[[CARRUTH,St.Andrew,Grenada|CARRUTH]]
*[[CASTIGNE,St.Andrew,Grenada|CASTIGNE]]
*[[CHAPEL ROAD,St.Andrew,Grenada|CHAPEL ROAD]]
*[[COCOA ROAD,St.Andrew,Grenada|COCOA ROAD]]
*[[CODRONA,St.Andrew,Grenada|CODRONA]]
*[[CONFERENCE,St.Andrew,Grenada|CONFERENCE]]
*[[COOKHILL ROAD,St.Andrew,Grenada|COOKHILL ROAD]]
*[[CROCHU,St.Andrew,Grenada|CROCHU]]
*[[DE BLANDEAU,St.Andrew,Grenada|DE BLANDEAU]]
*[[DUNFERMLINE,St.Andrew,Grenada|DUNFERMLINE]]
*[[DURRANT ROAD,St.Andrew,Grenada|DURRANT ROAD]]
*[[FORD HILL ROAD,St.Andrew,Grenada|FORD HILL ROAD]]
*[[FELIX PARK,St.Andrew,Grenada|FELIX PARK]]
*[[GRANLETTE,St.Andrew,Grenada|GRANLETTE]]
*[[GEORGE V. STREET,St.Andrew,Grenada|GEORGE V. STREET]]
*[[GLADSTONE ROAD,St.Andrew,Grenada|GLADSTONE ROAD]]
*[[GOUYAVE,St.Andrew,Grenada|GOUYAVE]]
*[[GRAND BACOLET,St.Andrew,Grenada|GRAND BACOLET]]
*[[GRAND BRAS,St.Andrew,Grenada|GRAND BRAS]]
*[[GRIFFIN LANE,St.Andrew,Grenada|GRIFFIN LANE]]
*[[GUPO,St.Andrew,Grenada|GUPO]]
*[[HARFORD VILLAGE,St.Andrew,Grenada|HARFORD VILLAGE]]
*[[HERMON,St.Andrew,Grenada|HERMON]]
*[[HILLS ROAD, LOWER,St.Andrew,Grenada|HILLS ROAD]]
*[[HOPE,St.Andrew,Grenada|HOPE]]
*[[HOPE CITY,St.Andrew,Grenada|HOPE CITY]]
*[[LA DIGUE,St.Andrew,Grenada|LA DIGUE]]
*[[LA FILLETTE,St.Andrew,Grenada|LA FILLETTE]]
*[[LA POTERIE,St.Andrew,Grenada|LA POTERIE]]
*[[L'ESTERRIE,St.Andrew,Grenada|L'ESTERRIE]]
*[[LOWER CAPITOL,St.Andrew,Grenada|LOWER CAPITOL]]
*[[LOWER HARFORD VILLAGE,St.Andrew,Grenada|LOWER HARFORD VILLAGE]]
*[[MAHOUT,St.Andrew,Grenada|MAHOUT]]
*[[MAMMA CANNES,St.Andrew,Grenada|MAMMA CANNES]]
*[[MARQUIS,St.Andrew,Grenada|MARQUIS]]
*[[MC NELLIE ALLEY, SAUTEURS,St.Andrew,Grenada|MC NELLIE ALLEY, SAUTEURS]]
*[[MC NEILLY, SAUTEURS,St.Andrew,Grenada|MC NEILLY, SAUTEURS]]
*[[MEADOW,St.Andrew,Grenada|MEADOW]]
*[[MELDRUM,St.Andrew,Grenada|MELDRUM]]
*[[MIRABEAU,St.Andrew,Grenada|MIRABEAU]]
*[[MORNE LOUNGE,St.Andrew,Grenada|MORNE LOUNGE]]
*[[MOYAH,St.Andrew,Grenada|MOYAH]]
*[[MT. ST ERVANS, LA DIGUE,St.Andrew,Grenada|MT ST ERVANS, LA DIGUE]]
*[[MT. CARMEL,St.Andrew,Grenada|MT. CARMEL]]
*[[MT. HORNE,St.Andrew,Grenada|MT. HORNE]]
*[[MT. PLEASANT,St.Andrew,Grenada|MT. PLEASANT]]
*[[MT. SEALEY,St.Andrew,Grenada|MT. SEALEY]]
*[[MUNICH,St.Andrew,Grenada|MUNICH]]
*[[NEW HAMPSHIRE,St.Andrew,Grenada|NEW HAMPSHIRE]]
*[[NOELSVILLE,St.Andrew,Grenada|NOELSVILLE]]
*[[PARACLETE,St.Andrew,Grenada|PARACLETE]]
*[[PARADISE,St.Andrew,Grenada|PARADISE]]
*[[PEARLS,St.Andrew,Grenada|PEARLS]]
*[[PLATEAU,St.Andrew,Grenada|PLATEAU]]
*[[PLEASANCE,St.Andrew,Grenada|PLEASANCE]]
*[[POST ROYAL,St.Andrew,Grenada|POST ROYAL]]
*[[PROVIDENCE,St.Andrew,Grenada|PROVIDENCE]]
*[[RETREAT,St.Andrew,Grenada|RETREAT]]
*[[RICHMOND,St.Andrew,Grenada|RICHMOND]]
*[[RIVULET LANE,St.Andrew,Grenada|RIVULET LANE]]
*[[SABB,St.Andrew,Grenada|SABB]]
*[[SALISBURY ROAD,St.Andrew,Grenada|SALISBURY ROAD]]
*[[SAMUEL AVENUE, CALIVIGNY,St.Andrew,Grenada|SAMUEL AVENUE, CALIVIGNY]]
*[[SEATON BROWNE STREET,St.Andrew,Grenada|SEATON BROWNE STREET]]
*[[SEATON JAMES STREET,St.Andrew,Grenada|SEATON JAMES STREET]]
*[[SENDALL STREET,St.Andrew,Grenada|SENDALL STREET]]
*[[SIMON,St.Andrew,Grenada|SIMON]]
*[[SNELL HALL,St.Andrew,Grenada|SNELL HALL]]
*[[SOUBISE,St.Andrew,Grenada|SOUBISE]]
*[[SPRING GARDEN,St.Andrew,Grenada|SPRING GARDEN]]
*[[ST. CLOUDS,St.Andrew,Grenada|ST. CLOUDS]]
*[[ST. JAMES,St.Andrew,Grenada|ST. JAMES]]
*[[ST. JOHNS,St.Andrew,Grenada|ST. JOHNS]]
*[[TOUS CONGO,St.Andrew,Grenada|TOUS CONGO]]
*[[TELESCOPE,St.Andrew,Grenada|TELESCOPE]]
*[[TIVOLI,St.Andrew,Grenada|TIVOLI]]
*[[TUILLIERIES,St.Andrew,Grenada|TUILLIERIES]]
*[[UNION,St.Andrew,Grenada|UNION]]
*[[UPPER CAPITOL,St.Andrew,Grenada|UPPER CAPITOL]]
*[[THE VILLA,St.Andrew,Grenada|THE VILLA]]
*[[VILLAGE ROAD,St.Andrew,Grenada|VILLAGE ROAD]]
*[[VICTORIA STREET,St.Andrew,Grenada|VICTORIA STREET]]
*[[WALKER,St.Andrew,Grenada|WALKER]]
*[[WELLS ROAD,St.Andrew,Grenada|WELLS ROAD]]
==[[St.Mark,Grenada|St.Mark]]==
*[[BOCAGE,St.Mark,Grenada|BOCAGE]]
*[[BOCAGE, BONAIR,St.Mark,Grenada|BOCAGE, BONAIR]]
*[[BONAIR,St.Mark,Grenada|BONAIR]]
*[[BONIAR ROAD, BONAIR,St.Mark,Grenada|BONIAR ROAD, BONAIR]]
*[[CHARLOTTE VALE,St.Mark,Grenada|CHARLOTTE VALE]]
*[[COAST GUARD,St.Mark,Grenada|COAST GUARD]]
*[[CRUICKSHANK ROAD,St.Mark,Grenada|CRUICKSHANK ROAD]]
*[[CRUICKSHANK ROAD, VICTORIA,St.Mark,Grenada|CRUICKSHANK ROAD, VICTORIA]]
*[[DARVEY,St.Mark,Grenada|DARVEY]]
*[[DE VILLA,St.Mark,Grenada|DE VILLA]]
*[[DIAMOND ESTATE,St.Mark,Grenada|DIAMOND ESTATE]]
*[[DIAMOND STREET, VICTORIA,St.Mark,Grenada|DIAMOND STREET, VICTORIA]]
*[[DIEGO PIECE,St.Mark,Grenada|DIEGO PIECE]]
*[[DUQUESNE,St.Mark,Grenada|DUQUESNE]]
*[[FAIR FIELD ROAD, VICTORIA,St.Mark,Grenada|FAIR FIELD ROAD, VICTORIA]]
*[[GALL STREET, VICTORIA,St.Mark,Grenada|GALL STREET, VICTORIA]]
*[[GROSS POINT, GROSS POINT VILLA,St.Mark,Grenada|GROSS POINT, GROSS POINT VILLA]]
*[[INDUSTRY,St.Mark,Grenada|INDUSTRY]]
*[[LA RESOURCE,St.Mark,Grenada|LA RESOURCE]]
*[[MARAN,St.Mark,Grenada|MARAN]]
*[[MT. EDGECOMBE,St.Mark,Grenada|MT. EDGECOMBE]]
*[[MUNRO STREET, VICTORIA,St.Mark,Grenada|MUNRO STREET, VICTORIA]]
*[[NON-PARIEL,St.Mark,Grenada|NON-PARIEL]]
*[[PETIT BOCAGE,St.Mark,Grenada|PETIT BOCAGE]]
*[[QUEEN STREET, VICTORIA,St.Mark,Grenada|QUEEN STREET, VICTORIA]]
*[[RESOURCE,St.Mark,Grenada|RESOURCE]]
*[[RESOURCE, RESOURCE,St.Mark,Grenada|RESOURCE, RESOURCE]]
*[[RIVER SALLEE,St.Mark,Grenada|RIVER SALLEE]]
*[[SAMARITAN,St.Mark,Grenada|SAMARITAN]]
*[[SAMARITAN, DIEGO PIECE,St.Mark,Grenada|SAMARITAN, DIEGO PIECE]]
*[[ST DAVID STREET, VICTORIA,St.Mark,Grenada|ST DAVID STREET, VICTORIA]]
*[[ST JOHN STREET, VICTORIA,St.Mark,Grenada|ST JOHN STREET, VICTORIA]]
*[[STEWAD COTTAGE,St.Mark,Grenada|STEWAD COTTAGE]]
*[[VICTORIA,St.Mark,Grenada|VICTORIA]]
*[[WALTHAM,St.Mark,Grenada|WALTHAM]]
==[[St.Patrick,Grenada|St.Patrick]]==
*[[BATHWAY,St.Patrick,Grenada|BATHWAY]]
*[[BAY ROAD, SAUTEURS,St.Patrick,Grenada|BAY ROAD, SAUTEURS]]
*[[CEDARS,St.Patrick,Grenada|CEDARS]]
*[[CHANTIMELLE,St.Patrick,Grenada|CHANTIMELLE]]
*[[CROSS STREET, SAUTEURS,St.Patrick,Grenada|CROSS STREET, SAUTEURS]]
*[[GLEBE LAND, SAUTEURS,St.Patrick,Grenada|GLEBE LAND, SAUTEURS]]
*[[GLEBE STREET, SAUTEURS,St.Patrick,Grenada|GLEBE STREET, SAUTEURS]]
*[[HERMITAGE,St.Patrick,Grenada|HERMITAGE]]
*[[HIGH GATE, MORNE FENDUE,St.Patrick,Grenada|HIGH GATE, MORNE FENDUE]]
*[[HIGH STREET, SAUTEURS,St.Patrick,Grenada|HIGH STREET, SAUTEURS]]
*[[HILL STREET, SAUTEURS,St.Patrick,Grenada|HILL STREET, SAUTEURS]]
*[[LA FORTUNE,St.Patrick,Grenada|LA FORTUNE]]
*[[LA TASTE,St.Patrick,Grenada|LA TASTE]]
*[[LEVERA,St.Patrick,Grenada|LEVERA]]
*[[MADEYS,St.Patrick,Grenada|MADEYS]]
*[[MAHOUT, ROSE HILL,St.Patrick,Grenada|MAHOUT, ROSE HILL]]
*[[MAIN STREET, SAUTEURS,St.Patrick,Grenada|MAIN STREET, SAUTEURS]]
*[[MARLI,St.Patrick,Grenada|MARLI]]
*[[MC NEILLY ALLEY, MARLI,St.Patrick,Grenada|MC NEILLY ALLEY, MARLI]]
*[[MC NELLIE ALLEY, SAUTEURS,St.Patrick,Grenada|MC NELLIE ALLEY, SAUTEURS]]
*[[MORNE FENDUE,St.Patrick,Grenada|MORNE FENDUE]]
*[[MT. CRAVEN,St.Patrick,Grenada|MT. CRAVEN]]
*[[MT. RICH,St.Patrick,Grenada|MT. RICH]]
*[[MT. ROSE,St.Patrick,Grenada|MT. ROSE]]
*[[PEGGYS WHIM, HERMITAGE,St.Patrick,Grenada|PEGGYS WHIM, HERMITAGE]]
*[[PLAINS,St.Patrick,Grenada|PLAINS]]
*[[POINTZFIELD,St.Patrick,Grenada|POINTZFIELD]]
*[[PROSPECT,St.Patrick,Grenada|PROSPECT]]
*[[RED HEAD STREET, LA FORTUNE,St.Patrick,Grenada|RED HEAD STREET, LA FORTUNE]]
*[[RED HEAD STREET, SAUTEURS,St.Patrick,Grenada|RED HEAD STREET, SAUTEURS]]
*[[RED MUD,St.Patrick,Grenada|RED MUD]]
*[[RIVER SALLEE,St.Patrick,Grenada|RIVER SALLEE]]
*[[ROSE HILL,St.Patrick,Grenada|ROSE HILL]]
*[[SALISBURY RD, SAUTEURS,St.Patrick,Grenada|SALISBURY RD, SAUTEURS]]
*[[SALISBURY STREET, SAUTEURS,St.Patrick,Grenada|SALISBURY STREET, SAUTEURS]]
*[[SAUTEURS,St.Patrick,Grenada|SAUTEURS]]
*[[THE VILLA, SAUTEURS,St.Patrick,Grenada|THE VILLA, SAUTEURS]]
== Uncategorized==
*[[ADAM'S ALLEY,,Grenada|ADAM'S ALLEY]]
*[[AFRICA,,Grenada|AFRICA]]
*[[APSLEY HILL,,Grenada|APSLEY HILL]]
*[[BLUGGO,,Grenada|BLUGGO]]
*[[BYWAY,,Grenada|BYWAY]]
*[[CELESTE,,Grenada|CELESTE]]
*[[CENTRAL DEPRADINE, GOUYAVE,,Grenada|CENTRAL DEPRADINE, GOUYAVE]]
*[[CHADDEAU,,Grenada|CHADDEAU]]
*[[CHANCERY STREET, MUNRO,,Grenada|CHANCERY STREET, MUNRO]]
*[[CHAPEL'S LANE,,Grenada|CHAPEL'S LANE]]
*[[CHURCH HILL ROAD,,Grenada|CHURCH HILL ROAD]]
*[[COOPER'S HILL,,Grenada|COOPER'S HILL]]
*[[CORNWALL STREET, SAUTEURS,,Grenada|CORNWALL STREET, SAUTEURS]]
*[[DE SILLES,,Grenada|DE SILLES]]
*[[DEHAR, GLEBE LAND,,Grenada|DEHAR, GLEBE LAND]]
*[[DOTHAN ESTATE,,Grenada|DOTHAN ESTATE]]
*[[DURRANT ROAD,,Grenada|DURRANT ROAD]]
*[[FENCE,,Grenada|FENCE]]
*[[FERGUSONS LANE, GOUYAVE,,Grenada|FERGUSONS LANE, GOUYAVE]]
*[[FIELD STREET,,Grenada|FIELD STREET]]
*[[FOUNTAIN,,Grenada|FOUNTAIN]]
*[[GLEBE LAND, SAUTEURS,,Grenada|GLEBE LAND, SAUTEURS]]
*[[GRAVEL STREET, VENDOME,,Grenada|GRAVEL STREET, VENDOME]]
*[[GROSS POINT VILLA,,Grenada|GROSS POINT VILLA]]
*[[HENRY STREET,,Grenada|HENRY STREET]]
*[[JONES ROAD,,Grenada|JONES ROAD]]
*[[LOWER CONFERENCE,,Grenada|LOWER CONFERENCE]]
*[[LOWER DEPRADINE, GOUYAVE,,Grenada|LOWER DEPRADINE, GOUYAVE]]
*[[LOWER LAURA,,Grenada|LOWER LAURA]]
*[[LYDER,,Grenada|LYDER]]
*[[MAHOUT, SAUTEURS,,Grenada|MAHOUT, SAUTEURS]]
*[[MAIN STREET, SAUTEURS,,Grenada|MAIN STREET, SAUTEURS]]
*[[MALIGNON,,Grenada|MALIGNON]]
*[[MARINE VILLA,,Grenada|MARINE VILLA]]
*[[MAUCHETTE,,Grenada|MAUCHETTE]]
*[[MC LAINE ALLEY, SAUTEURS,,Grenada|MC LAINE ALLEY, SAUTEURS]]
*[[MELROSE,,Grenada|MELROSE]]
*[[MT. ALEXANDER,,Grenada|MT. ALEXANDER]]
*[[MT. ANON,,Grenada|MT. ANON]]
*[[MT. CUMMA,,Grenada|MT. CUMMA]]
*[[MT. FELIX,,Grenada|MT. FELIX]]
*[[MT. PLASIR,,Grenada|MT. PLASIR]]
*[[MT. REUIL,,Grenada|MT. REUIL]]
*[[MT. RODNEY,,Grenada|MT. RODNEY]]
*[[MT. WILLIAMS,,Grenada|MT. WILLIAMS]]
*[[MUNRO STREET,,Grenada|MUNRO STREET]]
*[[MUNROE STREET, VICTORIA,,Grenada|MUNROE STREET, VICTORIA]]
*[[NETTLE POINT,,Grenada|NETTLE POINT]]
*[[NEW GARDENS,,Grenada|NEW GARDENS]]
*[[OTTLEY'S LANE,,Grenada|OTTLEY'S LANE]]
*[[PARK ESTATE,,Grenada|PARK ESTATE]]
*[[PENNY RETREAT,,Grenada|PENNY RETREAT]]
*[[SAMUELS AVENUE,,Grenada|SAMUELS AVENUE]]
*[[SAUTEURS, MAHOUT,,Grenada|SAUTEURS, MAHOUT]]
*[[SCHOOL LANE,,Grenada|SCHOOL LANE]]
*[[ST. BENOIT'S STREET,,Grenada|ST. BENOIT'S STREET]]
*[[ST. CYR,,Grenada|ST. CYR]]
*[[ST. DAVID STREET,,Grenada|ST. DAVID STREET]]
*[[ST. DOMINIC'S ST.,,Grenada|ST. DOMINIC'S ST.]]
*[[TAYBAKAY,,Grenada|TAYBAKAY]]
*[[TAYLOR,,Grenada|TAYLOR]]
*[[THE SUMMIT,,Grenada|THE SUMMIT]]
*[[THE VILLA, THE ROCK,,Grenada|THE VILLA, THE ROCK]]
*[[VINEYARD,,Grenada|VINEYARD]]
b56da3e40e854ddd9ebd9a9a25a15dd601c7627a
177
176
2022-07-21T23:56:45Z
Wikiricky
1
/* Carriacou and Petite Martinique */ added reference
wikitext
text/x-wiki
This is a list of populated villages, towns, settlements, and streets in Grenada. Many of the village names in Grenada are based upon the names of plantations. Grenada has 7 Parishes
==[[St.George,Grenada|St.George]]==
*[[ANNANDALE,St.George,Grenada|ANNANDALE]]
*[[ARCHIBALD AVENUE,St.George,Grenada|ARCHIBALD AVENUE]]
*[[BACK STREET, TEMPE,St.George,Grenada|BACK STREET, TEMPE]]
*[[BAIN'S ALLEY,St.George,Grenada|BAIN'S ALLEY]]
*[[BEAULIEU,St.George,Grenada|BEAULIEU]]
*[[BELMONT,St.George,Grenada|BELMONT]]
*[[BLACK FOREST, VENDOME,St.George,Grenada|BLACK FOREST, VENDOME]]
*[[BLACKBURN ALLEY,St.George,Grenada|BLACKBURN ALLEY]]
*[[BOCA,St.George,Grenada|BOCA]]
*[[BON ACCORD ESTATE,St.George,Grenada|BON ACCORD ESTATE]]
*[[BOTANICAL GARDENS,St.George,Grenada|BOTANICAL GARDENS]]
*[[BRIGG'S ALLEY,St.George,Grenada|BRIGG'S ALLEY]]
*[[BRIZAN,St.George,Grenada|BRIZAN]]
*[[CAFE,St.George,Grenada|CAFE]]
*[[CALABASH ALLEY,St.George,Grenada|CALABASH ALLEY]]
*[[CALIVIGNY,St.George,Grenada|CALIVIGNY]]
*[[CALLISTE,St.George,Grenada|CALLISTE]]
*[[CARENAGE,St.George,Grenada|CARENAGE]]
*[[CARRIERE,St.George,Grenada|CARRIERE]]
*[[CEMETERY HILL,St.George,Grenada|CEMETERY HILL]]
*[[CHANTILLY, TEMPE,St.George,Grenada|CHANTILLY, TEMPE]]
*[[CHEMIN RIVER,St.George,Grenada|CHEMIN RIVER]]
*[[CHERRY HILL,St.George,Grenada|CHERRY HILL]]
*[[CHURCH STREET,St.George,Grenada|CHURCH STREET]]
*[[CIRCULAR DRIVE, FREQUENTE,St.George,Grenada|CIRCULAR DRIVE, FREQUENTE]]
*[[CLARKES COURT BAY,St.George,Grenada|CLARKES COURT BAY,]]
*[[COCOA ROAD, MARIAN,St.George,Grenada|COCOA ROAD, MARIAN]]
*[[CONFER,St.George,Grenada|CONFER]]
*[[CONSTANTINE,St.George,Grenada|CONSTANTINE]]
*[[CORBEAU TOWN,St.George,Grenada|CORBEAU TOWN]]
*[[COX ALLEY,St.George,Grenada|COX ALLEY]]
*[[CREIGHTON,St.George,Grenada|CREIGHTON]]
*[[CROSS STREET,St.George,Grenada|CROSS STREET]]
*[[D'ARBEAU,St.George,Grenada|D'ARBEAU]]
*[[DE FAUX,St.George,Grenada|DE FAUX]]
*[[DEPONTHIEU STREET,St.George,Grenada|DEPONTHIEU STREET]]
*[[DE VILLA, BLACKBURN ALLEY,St.George,Grenada|DE VILLA, BLACKBURN ALLEY]]
*[[DIXIE, SPRINGS,St.George,Grenada|DIXIE, SPRINGS]]
*[[DUSTY HIGHWAY, GRAND ANSE,St.George,Grenada|DUSTY HIGHWAY, GRAND ANSE]]
*[[EDGEMOND POINT,St.George,Grenada|EDGEMOND POINT]]
*[[FALL EDGE, GRAND ANSE,St.George,Grenada|FALL EDGE, GRAND ANSE]]
*[[FENTON VILLAGE,St.George,Grenada|FENTON VILLAGE]]
*[[FONTENOY,St.George,Grenada|FONTENOY]]
*[[FORT JUEDY,St.George,Grenada|FORT JUEDY]]
*[[FREQUENTE,St.George,Grenada|FREQUENTE]]
*[[GOLF COURSE,St.George,Grenada|GOLF COURSE]]
*[[GOOD HOPE,St.George,Grenada|GOOD HOPE]]
*[[GORE STREET,St.George,Grenada|GORE STREET]]
*[[GRAND ANSE,St.George,Grenada|GRAND ANSE]]
*[[GRAND ANSE ESTATE, LANCE AUX,St.George,Grenada|GRAND ANSE ESTATE, LANCE AUX]]
*[[GRAND ANSE HOUSING SCHEME,St.George,Grenada|GRAND ANSE HOUSING SCHEME]]
*[[GRAND ANSE VALLEY,St.George,Grenada|GRAND ANSE VALLEY]]
*[[GRAND ETANG ROAD,St.George,Grenada|GRAND ETANG ROAD]]
*[[GRAND MAL,St.George,Grenada|GRAND MAL]]
*[[GRANTON,St.George,Grenada|GRANTON]]
*[[GREEN STREET,St.George,Grenada|GREEN STREET]]
*[[GRENVILLE STREET,St.George,Grenada|GRENVILLE STREET]]
*[[GRENVILLE VALE,St.George,Grenada|GRENVILLE VALE]]
*[[GREY STONE, BELMONT,St.George,Grenada|GREY STONE, BELMONT]]
*[[H.A BLAIZE STREET,St.George,Grenada|H.A BLAIZE STREET]]
*[[HADDON SMITH STREET,St.George,Grenada|HADDON SMITH STREET]]
*[[HALIFAX STREET,St.George,Grenada|HALIFAX STREET]]
*[[HAPPY HILL,St.George,Grenada|HAPPY HILL]]
*[[HILL TOP, CALIVIGNY,St.George,Grenada|HILL TOP, CALIVIGNY]]
*[[HILLS ROAD,St.George,Grenada|HILLS ROAD]]
*[[HILLSBOROUGH STREET,St.George,Grenada|HILLSBOROUGH STREET]]
*[[HOPE VALE,St.George,Grenada|HOPE VALE]]
*[[INDEPENDENCE AVENUE,St.George,Grenada|INDEPENDENCE AVENUE]]
*[[JEAN ANGLIAS,St.George,Grenada|JEAN ANGLIAS]]
*[[JUMBIE,St.George,Grenada|JUMBIE]]
*[[KAFE BEAU HILL,St.George,Grenada|KAFE BEAU HILL]]
*[[LA BORIE,St.George,Grenada|LA BORIE]]
*[[LA MODE,St.George,Grenada|LA MODE]]
*[[LAGOON ROAD,St.George,Grenada|LAGOON ROAD]]
*[[LANCE AUX EPINES,St.George,Grenada|LANCE AUX EPINES]]
*[[LONG GUTTER,St.George,Grenada|LONG GUTTER]]
*[[LOWER MORNE JALOUX,St.George,Grenada|LOWER MORNE JALOUX]]
*[[LOWER WOBURN,St.George,Grenada|LOWER WOBURN]]
*[[LOWTHER'S LANE,St.George,Grenada|LOWTHER'S LANE]]
*[[LUCAS STREET,St.George,Grenada|LUCAS STREET]]
*[[MALONEY STREET,St.George,Grenada|MALONEY STREET]]
*[[MANGO, NEW HAMPSHIRE,St.George,Grenada|MANGO, NEW HAMPSHIRE]]
*[[MARIAN,St.George,Grenada|MARIAN]]
*[[MARKET HILL,St.George,Grenada|MARKET HILL]]
*[[MARRAST HILL,St.George,Grenada|MARRAST HILL]]
*[[MAURICE BISHOP HIGHWAY, GRAND ANSE,St.George,Grenada|MAURICE BISHOP HIGHWAY, GRAND ANSE]]
*[[MAURICE BISHOP HWY, GRAND,St.George,Grenada|MAURICE BISHOP HWY, GRAND]]
*[[MELVILLE STREET,St.George,Grenada|MELVILLE STREET]]
*[[MOLINIERE,St.George,Grenada|MOLINIERE]]
*[[MONT TOUTE,St.George,Grenada|MONT TOUTE]]
*[[MORNE JALOUX,St.George,Grenada|MORNE JALOUX]]
*[[MORNE ROUGE,St.George,Grenada|MORNE ROUGE]]
*[[MORTLEY ROAD,St.George,Grenada|MORTLEY ROAD]]
*[[MT. AIRY,St.George,Grenada|MT. AIRY]]
*[[MT. GAY,St.George,Grenada|MT. GAY]]
*[[MT. HARTMAN,St.George,Grenada|MT. HARTMAN]]
*[[MT. MORITZ,St.George,Grenada|MT. MORITZ]]
*[[MT. PARNASSUS,St.George,Grenada|MT. PARNASSUS]]
*[[MT. RUSH,St.George,Grenada|MT. RUSH]]
*[[MT. WHELDALE,St.George,Grenada|MT. WHELDALE]]
*[[OBSERVATORY ROAD,St.George,Grenada|OBSERVATORY ROAD]]
*[[OLD FORT,St.George,Grenada|OLD FORT]]
*[[PADDOCK,St.George,Grenada|PADDOCK]]
*[[PARADE,St.George,Grenada|PARADE]]
*[[PARK LANE,St.George,Grenada|PARK LANE]]
*[[PERSEVERANCE,St.George,Grenada|PERSEVERANCE]]
*[[PETERSFIELD,St.George,Grenada|PETERSFIELD]]
*[[POINT SALINES,St.George,Grenada|POINT SALINES]]
*[[QUEEN'S PARK,St.George,Grenada|QUEEN'S PARK]]
*[[RADIX, MT. PARNASSUS,St.George,Grenada|RADIX, MT. PARNASSUS]]
*[[RAVINE, MT. GAY,St.George,Grenada|RAVINE, MT. GAY]]
*[[RICHMOND HILL,St.George,Grenada|RICHMOND HILL]]
*[[RIVER ROAD,St.George,Grenada|RIVER ROAD]]
*[[ROEBUCK,St.George,Grenada|ROEBUCK]]
*[[SANS SOUCI,St.George,Grenada|SANS SOUCI]]
*[[SCOTT STREET,St.George,Grenada|SCOTT STREET]]
*[[SHENDA,St.George,Grenada|SHENDA]]
*[[SIMMONS STREET,St.George,Grenada|SIMMONS STREET]]
*[[SNUG CORNER,St.George,Grenada|SNUG CORNER]]
*[[SPRINGS,St.George,Grenada|SPRINGS]]
*[[ST. GEORGE ESTATE,St.George,Grenada|ST. GEORGE ESTATE]]
*[[ST. JOHN STREET,St.George,Grenada|ST. JOHN STREET]]
*[[ST. JUILLE STREET,St.George,Grenada|ST. JUILLE STREET]]
*[[ST.PAUL'S,St.George,Grenada|ST.PAUL'S]]
*[[SUNSET VALLEY, POINT SALINES,St.George,Grenada|SUNSET VALLEY, POINT SALINES]]
*[[TANTEEN, TANTEEN TERRACE,St.George,Grenada|TANTEEN, TANTEEN TERRACE]]
*[[TEMPE,St.George,Grenada|TEMPE]]
*[[TETMUND,St.George,Grenada|TETMUND]]
*[[THE BOCAS,St.George,Grenada|THE BOCAS]]
*[[THE GREENS,St.George,Grenada|THE GREENS]]
*[[THE LIMES,St.George,Grenada|THE LIMES]]
*[[THE STONES, GRAND ANSE,St.George,Grenada|THE STONES, GRAND ANSE]]
*[[THE STONES, NEW HAMPSHIRE,St.George,Grenada|THE STONES, NEW HAMPSHIRE]]
*[[THE VILLA, LONG GUTTER,St.George,Grenada|THE VILLA, LONG GUTTER]]
*[[TRANQUIL LANE,St.George,Grenada|TRANQUIL LANE]]
*[[TRUE BLUE,St.George,Grenada|TRUE BLUE]]
*[[TRYNE ALLEY,St.George,Grenada|TRYNE ALLEY]]
*[[TURTLE BACK DRIVE, LANCE AUX,St.George,Grenada|TURTLE BACK DRIVE, LANCE AUX]]
*[[TYRREL STREET,St.George,Grenada|TYRREL STREET]]
*[[UPPER MORNE JALOUX,St.George,Grenada|UPPER MORNE JALOUX]]
*[[UPPER WOBURN,St.George,Grenada|UPPER WOBURN]]
*[[VENDOME,St.George,Grenada|VENDOME]]
*[[WELCOME,St.George,Grenada|WELCOME]]
*[[WHITE GUN,St.George,Grenada|WHITE GUN]]
*[[WHITE HALL, PARK LANE,St.George,Grenada|WHITE HALL, PARK LANE]]
*[[WILLIAMSON ROAD,St.George,Grenada|WILLIAMSON ROAD]]
*[[WILLIS,St.George,Grenada|WILLIS]]
*[[WOODLANDS,St.George,Grenada|WOODLANDS]]
*[[WOOLWICH ROAD,St.George,Grenada|WOOLWICH ROAD]]
*[[YOUNG STREET,St.George,Grenada|YOUNG STREET]]
==[[St.John,Grenada|St.John]]==
*[[BACK STREET,St.John,Grenada|BACK STREET]]
*[[BELVIDERE,St.John,Grenada|BELVIDERE]]
*[[BLACK BAY,St.John,Grenada|BLACK BAY]]
*[[BOYKES LANE, GOUYAVE,St.John,Grenada|BOYKES LANE, GOUYAVE]]
*[[BROOKLYN,St.John,Grenada|BROOKLYN]]
*[[BROTHERS ESTATE,St.John,Grenada|BROTHERS ESTATE]]
*[[CENTRAL DEPRADINE STREET,St.John,Grenada|CENTRAL DEPRADINE STREET]]
*[[CLOZIER,St.John,Grenada|CLOZIER]]
*[[CONCORD,St.John,Grenada|CONCORD]]
*[[CORNETS WALK, GOUYAVE,St.John,Grenada|CORNETS WALK, GOUYAVE]]
*[[COTTON BAILY,St.John,Grenada|COTTON BAILY]]
*[[D LANCE, UPPER DEPRADINE,St.John,Grenada|D LANCE, UPPER DEPRADINE]]
*[[DOCTOR BELLE,St.John,Grenada|DOCTOR BELLE]]
*[[DOUGALDSTON,St.John,Grenada|DOUGALDSTON]]
*[[EDWARD STREET, GOUYAVE,St.John,Grenada|EDWARD STREET, GOUYAVE]]
*[[FERGUSON'S LANE,St.John,Grenada|FERGUSON'S LANE]]
*[[FLORIDA,St.John,Grenada|FLORIDA]]
*[[GOUYAVE ESTATE,St.John,Grenada|GOUYAVE ESTATE]]
*[[GRAND ROY,St.John,Grenada|GRAND ROY]]
*[[HILLSVIEW, GOUYAVE,St.John,Grenada|HILLSVIEW, GOUYAVE]]
*[[LANGTON ROAD, GOUYAVE,St.John,Grenada|LANGTON ROAD, GOUYAVE]]
*[[LOWER DEPRADINE STREET,St.John,Grenada|LOWER DEPRADINE STREET]]
*[[MARIGOT,St.John,Grenada|MARIGOT]]
*[[MITCHELL'S LANE,St.John,Grenada|MITCHELL'S LANE]]
*[[MONGO ROAD, GOUYAVE ESTATE,St.John,Grenada|MONGO ROAD, GOUYAVE ESTATE]]
*[[MT. GRANBY,St.John,Grenada|MT. GRANBY]]
*[[MT. NESBIT,St.John,Grenada|MT. NESBIT]]
*[[NEW STREET, EDWARD STREET,St.John,Grenada|NEW STREET, EDWARD STREET]]
*[[NEW STREET, GOUYAVE,St.John,Grenada|NEW STREET, GOUYAVE]]
*[[PALMISTE,St.John,Grenada|PALMISTE]]
*[[QUEEN STREET, ST. JOHN'S,St.John,Grenada|QUEEN STREET, ST. JOHN'S]]
*[[RENNIE,St.John,Grenada|RENNIE]]
*[[RIVER LANE, GOUYAVE ESTATE,St.John,Grenada|RIVER LANE, GOUYAVE ESTATE]]
*[[RIVER LANE, GOUYAVE,St.John,Grenada|RIVER LANE, GOUYAVE]]
*[[ROSEMOUNT,St.John,Grenada|ROSEMOUNT]]
*[[SCHOOL LANE, GOUYAVE,St.John,Grenada|SCHOOL LANE, GOUYAVE]]
*[[ST BENOIT STREET, GOUYAVE,St.John,Grenada|ST BENOIT STREET, GOUYAVE]]
*[[ST DOMINIC STREET, GOUYAVE,St.John,Grenada|ST DOMINIC STREET, GOUYAVE]]
*[[ST DOMINIC, GOUYAVE,St.John,Grenada|ST DOMINIC, GOUYAVE]]
*[[ST FRANCIS, GOUYAVE,St.John,Grenada|ST FRANCIS, GOUYAVE]]
*[[ST PETERS STREET, GOUYAVE,St.John,Grenada|ST PETERS STREET, GOUYAVE]]
*[[ST PETERS, GOUYAVE,St.John,Grenada|ST PETERS, GOUYAVE]]
*[[ST. FRANCIS STREET,St.John,Grenada|ST. FRANCIS STREET]]
*[[ST. PETER STREET,St.John,Grenada|ST. PETER STREET]]
*[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]]
*[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]]
*[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]]
*[[UPPER DEPRADINE STREET,St.John,Grenada|UPPER DEPRADINE STREET]]
*[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]]
*[[VICTORIA ROAD, GOUYAVE,St.John,Grenada|VICTORIA ROAD, GOUYAVE]]
*[[VICTORIA STREET,St.John,Grenada|VICTORIA STREET]]
*[[WATERLOO,St.John,Grenada|WATERLOO]]
*[[WOODFORD,St.John,Grenada|WOODFORD]]
==[[St.David,Grenada|St.David]]==
*[[APRES TOUTE,St.David,Grenada|APRES TOUTE]]
*[[BAILLES BACOLET,St.David,Grenada|BAILLES BACOLET]]
*[[BEATON,St.David,Grenada|BEATON]]
*[[BELLE ISLE,St.David,Grenada|BELLE ISLE]]
*[[BELLE VUE,St.David,Grenada|BELLE VUE]]
*[[BOCAGE,St.David,Grenada|BOCAGE]]
*[[CHAMPFLEURS,St.David,Grenada|CHAMPFLEURS]]
*[[COALS GAPS,St.David,Grenada|COALS GAPS]]
*[[CONTENT,St.David,Grenada|CONTENT]]
*[[CORINTH,St.David,Grenada|CORINTH]]
*[[DUDMAR,St.David,Grenada|DUDMAR]]
*[[EPPIN FOREST,St.David,Grenada|EPPIN FOREST]]
*[[HARMONY HALL,St.David,Grenada|HARMONY HALL]]
*[[LA CALOHME,St.David,Grenada|LA CALOHME]]
*[[LA FEMME,St.David,Grenada|LA FEMME]]
*[[LA FLORETTA,St.David,Grenada|LA FLORETTA]]
*[[LA PASTORA,St.David,Grenada|LA PASTORA]]
*[[LA SAGESSE,St.David,Grenada|LA SAGESSE]]
*[[LA TANTE,St.David,Grenada|LA TANTE]]
*[[MARLMOUNT,St.David,Grenada|MARLMOUNT]]
*[[MARDIGRAS,St.David,Grenada|MARDIGRAS]]
*[[MARLMOUNT, GLEBE LAND,St.David,Grenada|MARLMOUNT, GLEBE LAND]]
*[[MAULTY,St.David,Grenada|MAULTY]]
*[[MAYANN, CONSTANTINE,St.David,Grenada|MAYANN, CONSTANTINE]]
*[[MINORCA,St.David,Grenada|MINORCA]]
*[[MORNE DELICE,St.David,Grenada|MORNE DELICE]]
*[[MON REPOS,St.David,Grenada|MON REPOS]]
*[[MT. AGNES,St.David,Grenada|MT. AGNES]]
*[[MT. DISIRE,St.David,Grenada|MT. DISIRE]]
*[[MT. ROSE,St.David,Grenada|MT. ROSE]]
*[[MYANN, CONSTANTINE,St.David,Grenada|MYANN, CONSTANTINE]]
*[[NEW WESTERHALL,St.David,Grenada|NEW WESTERHALL]]
*[[OLD WESTERHALL,St.David,Grenada|OLD WESTERHALL]]
*[[PERDMONTEMPS,St.David,Grenada|PERDMONTEMPS]]
*[[PETITE BACAYE, NEW,St.David,Grenada|PETITE BACAYE, NEW]]
*[[PETITE ESPERANCE,St.David,Grenada|PETITE ESPERANCE]]
*[[PETITE ETANG,St.David,Grenada|PETITE ETANG]]
*[[POMME ROSE,St.David,Grenada|POMME ROSE]]
*[[RED GATE,St.David,Grenada|RED GATE]]
*[[REDMUD,St.David,Grenada|REDMUD]]
*[[REQUIN,St.David,Grenada|REQUIN]]
*[[SLINGER STREET,St.David,Grenada|SLINGER STREET]]
*[[SYRACUSE,St.David,Grenada|SYRACUSE]]
*[[THEBAIDE,St.David,Grenada|THEBAIDE]]
*[[TABOR,St.David,Grenada|TABOR]]
*[[UPPER LAURA,St.David,Grenada|UPPER LAURA]]
*[[VINCENNES,St.David,Grenada|VINCENNES]]
*[[WESTERHALL POINT,St.David,Grenada|WESTERHALL POINT]]
*[[WINDSOR,St.David,Grenada|WINDSOR]]
*[[WINDSOR FOREST,St.David,Grenada|WINDSOR FOREST]]
==[[Carriacou and Petite Martinique,Grenada|Carriacou and Petite Martinique]]==
*[[BAYALEAU,Carriacou,Grenada|BAYALEAU]]
*[[BEAUSEJOUR,Carriacou,Grenada|BEAUSEJOUR]]
*[[BELAIR,Carriacou,Grenada|BELAIR]]
*[[BELLE VUE,Carriacou,Grenada|BELLE VUE]]
*[[BELMONT,Carriacou,Grenada|BELMONT]]
*[[BOGLES,Carriacou,Grenada|BOGLES]]
*[[BRUNSWICK,Carriacou,Grenada|BRUNSWICK]]
*[[CHURCH STREET, HILLSBOROUGH,Carriacou,Grenada|CHURCH STREET, HILLSBOROUGH]]
*[[CRAIGSTON,Carriacou,Grenada|CRAIGSTON]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1385]</ref>
*[[CHERRY HILL,Carriacou,Grenada|CHERRY HILL]]
*[[DOVER,Carriacou,Grenada|DOVER]]
*[[DUMFRIES,Carriacou,Grenada|DUMFRIES]]
*[[GRAND BAY,Carriacou,Grenada|GRAND BAY]]
*[[HARVEY VALE,Carriacou,Grenada|HARVEY VALE]]
*[[HERMITAGE,Carriacou,Grenada|HERMITAGE]]
*[[HILLSBOROUGH,Carriacou,Grenada|HILLSBOROUGH]]
*[[L'ESTERRE,Carriacou,Grenada|L'ESTERRE]]
*[[LAURISTON,Carriacou,Grenada|LAURISTON]]
*[[LIMLAIR,Carriacou,Grenada|LIMLAIR]]
*[[MELDRUM,Carriacou,Grenada|MELDRUM]]
*[[MT. DISIRE,Carriacou,Grenada|MT. DISIRE]]
*[[MT. PLEASANT,Carriacou,Grenada|MT. PLEASANT]]
*[[MT. ST ERVANS, L'ESTERRIE,Carriacou,Grenada|MT ST ERVANS, L'ESTERRIE]]
*[[MT. ROYAL,Carriacou,Grenada|MT. ROYAL]]
*[[PROSPECT HALL,Carriacou,Grenada|PROSPECT HALL]]
*[[SIX ROADS,Carriacou,Grenada|SIX ROADS]]
*[[TOP HILL,Carriacou,Grenada|TOP HILL]]
*[[WINDWARD,Carriacou,Grenada|WINDWARD]]
*[[PETITE MARTINIQUE,PETIT MARTINIQUE,Grenada|PETITE MARTINIQUE]]
==[[St.Andrew,Grenada|St.Andrew]]==
*[[MT. FANN,St. Andrew,Grenada|MT. FANN]]
*[[ADELPHI,St.Andrew,Grenada|ADELPHI]]
*[[AHOMA,St.Andrew,Grenada|AHOMA]]
*[[BALTHAZAR,St.Andrew,Grenada|BALTHAZAR]]
*[[BAYROAD,St.Andrew,Grenada|BAYROAD]]
*[[BLAIZE,St.Andrew,Grenada|BLAIZE]]
*[[BAMBOO,St.Andrew,Grenada|BAMBOO]]
*[[BATTLE HILL,St.Andrew,Grenada|BATTLE HILL]]
*[[BEAUREGARD,St.Andrew,Grenada|BEAUREGARD]]
*[[BELLE VUE,St.Andrew,Grenada|BELLE VUE]]
*[[BELVEDERE,St.Andrew,Grenada|BELVEDERE]]
*[[BEN JONES STREET,St.Andrew,Grenada|BEN JONES STREET]]
*[[BIRCHGROVE,St.Andrew,Grenada|BIRCHGROVE]]
*[[BYELANDS,St.Andrew,Grenada|BYELANDS]]
*[[CAFE,St.Andrew,Grenada|CAFE]]
*[[CANAL ROAD,St.Andrew,Grenada|CANAL ROAD]]
*[[CARRIERE,St.Andrew,Grenada|CARRIERE]]
*[[CARRUTH,St.Andrew,Grenada|CARRUTH]]
*[[CASTIGNE,St.Andrew,Grenada|CASTIGNE]]
*[[CHAPEL ROAD,St.Andrew,Grenada|CHAPEL ROAD]]
*[[COCOA ROAD,St.Andrew,Grenada|COCOA ROAD]]
*[[CODRONA,St.Andrew,Grenada|CODRONA]]
*[[CONFERENCE,St.Andrew,Grenada|CONFERENCE]]
*[[COOKHILL ROAD,St.Andrew,Grenada|COOKHILL ROAD]]
*[[CROCHU,St.Andrew,Grenada|CROCHU]]
*[[DE BLANDEAU,St.Andrew,Grenada|DE BLANDEAU]]
*[[DUNFERMLINE,St.Andrew,Grenada|DUNFERMLINE]]
*[[DURRANT ROAD,St.Andrew,Grenada|DURRANT ROAD]]
*[[FORD HILL ROAD,St.Andrew,Grenada|FORD HILL ROAD]]
*[[FELIX PARK,St.Andrew,Grenada|FELIX PARK]]
*[[GRANLETTE,St.Andrew,Grenada|GRANLETTE]]
*[[GEORGE V. STREET,St.Andrew,Grenada|GEORGE V. STREET]]
*[[GLADSTONE ROAD,St.Andrew,Grenada|GLADSTONE ROAD]]
*[[GOUYAVE,St.Andrew,Grenada|GOUYAVE]]
*[[GRAND BACOLET,St.Andrew,Grenada|GRAND BACOLET]]
*[[GRAND BRAS,St.Andrew,Grenada|GRAND BRAS]]
*[[GRIFFIN LANE,St.Andrew,Grenada|GRIFFIN LANE]]
*[[GUPO,St.Andrew,Grenada|GUPO]]
*[[HARFORD VILLAGE,St.Andrew,Grenada|HARFORD VILLAGE]]
*[[HERMON,St.Andrew,Grenada|HERMON]]
*[[HILLS ROAD, LOWER,St.Andrew,Grenada|HILLS ROAD]]
*[[HOPE,St.Andrew,Grenada|HOPE]]
*[[HOPE CITY,St.Andrew,Grenada|HOPE CITY]]
*[[LA DIGUE,St.Andrew,Grenada|LA DIGUE]]
*[[LA FILLETTE,St.Andrew,Grenada|LA FILLETTE]]
*[[LA POTERIE,St.Andrew,Grenada|LA POTERIE]]
*[[L'ESTERRIE,St.Andrew,Grenada|L'ESTERRIE]]
*[[LOWER CAPITOL,St.Andrew,Grenada|LOWER CAPITOL]]
*[[LOWER HARFORD VILLAGE,St.Andrew,Grenada|LOWER HARFORD VILLAGE]]
*[[MAHOUT,St.Andrew,Grenada|MAHOUT]]
*[[MAMMA CANNES,St.Andrew,Grenada|MAMMA CANNES]]
*[[MARQUIS,St.Andrew,Grenada|MARQUIS]]
*[[MC NELLIE ALLEY, SAUTEURS,St.Andrew,Grenada|MC NELLIE ALLEY, SAUTEURS]]
*[[MC NEILLY, SAUTEURS,St.Andrew,Grenada|MC NEILLY, SAUTEURS]]
*[[MEADOW,St.Andrew,Grenada|MEADOW]]
*[[MELDRUM,St.Andrew,Grenada|MELDRUM]]
*[[MIRABEAU,St.Andrew,Grenada|MIRABEAU]]
*[[MORNE LOUNGE,St.Andrew,Grenada|MORNE LOUNGE]]
*[[MOYAH,St.Andrew,Grenada|MOYAH]]
*[[MT. ST ERVANS, LA DIGUE,St.Andrew,Grenada|MT ST ERVANS, LA DIGUE]]
*[[MT. CARMEL,St.Andrew,Grenada|MT. CARMEL]]
*[[MT. HORNE,St.Andrew,Grenada|MT. HORNE]]
*[[MT. PLEASANT,St.Andrew,Grenada|MT. PLEASANT]]
*[[MT. SEALEY,St.Andrew,Grenada|MT. SEALEY]]
*[[MUNICH,St.Andrew,Grenada|MUNICH]]
*[[NEW HAMPSHIRE,St.Andrew,Grenada|NEW HAMPSHIRE]]
*[[NOELSVILLE,St.Andrew,Grenada|NOELSVILLE]]
*[[PARACLETE,St.Andrew,Grenada|PARACLETE]]
*[[PARADISE,St.Andrew,Grenada|PARADISE]]
*[[PEARLS,St.Andrew,Grenada|PEARLS]]
*[[PLATEAU,St.Andrew,Grenada|PLATEAU]]
*[[PLEASANCE,St.Andrew,Grenada|PLEASANCE]]
*[[POST ROYAL,St.Andrew,Grenada|POST ROYAL]]
*[[PROVIDENCE,St.Andrew,Grenada|PROVIDENCE]]
*[[RETREAT,St.Andrew,Grenada|RETREAT]]
*[[RICHMOND,St.Andrew,Grenada|RICHMOND]]
*[[RIVULET LANE,St.Andrew,Grenada|RIVULET LANE]]
*[[SABB,St.Andrew,Grenada|SABB]]
*[[SALISBURY ROAD,St.Andrew,Grenada|SALISBURY ROAD]]
*[[SAMUEL AVENUE, CALIVIGNY,St.Andrew,Grenada|SAMUEL AVENUE, CALIVIGNY]]
*[[SEATON BROWNE STREET,St.Andrew,Grenada|SEATON BROWNE STREET]]
*[[SEATON JAMES STREET,St.Andrew,Grenada|SEATON JAMES STREET]]
*[[SENDALL STREET,St.Andrew,Grenada|SENDALL STREET]]
*[[SIMON,St.Andrew,Grenada|SIMON]]
*[[SNELL HALL,St.Andrew,Grenada|SNELL HALL]]
*[[SOUBISE,St.Andrew,Grenada|SOUBISE]]
*[[SPRING GARDEN,St.Andrew,Grenada|SPRING GARDEN]]
*[[ST. CLOUDS,St.Andrew,Grenada|ST. CLOUDS]]
*[[ST. JAMES,St.Andrew,Grenada|ST. JAMES]]
*[[ST. JOHNS,St.Andrew,Grenada|ST. JOHNS]]
*[[TOUS CONGO,St.Andrew,Grenada|TOUS CONGO]]
*[[TELESCOPE,St.Andrew,Grenada|TELESCOPE]]
*[[TIVOLI,St.Andrew,Grenada|TIVOLI]]
*[[TUILLIERIES,St.Andrew,Grenada|TUILLIERIES]]
*[[UNION,St.Andrew,Grenada|UNION]]
*[[UPPER CAPITOL,St.Andrew,Grenada|UPPER CAPITOL]]
*[[THE VILLA,St.Andrew,Grenada|THE VILLA]]
*[[VILLAGE ROAD,St.Andrew,Grenada|VILLAGE ROAD]]
*[[VICTORIA STREET,St.Andrew,Grenada|VICTORIA STREET]]
*[[WALKER,St.Andrew,Grenada|WALKER]]
*[[WELLS ROAD,St.Andrew,Grenada|WELLS ROAD]]
==[[St.Mark,Grenada|St.Mark]]==
*[[BOCAGE,St.Mark,Grenada|BOCAGE]]
*[[BOCAGE, BONAIR,St.Mark,Grenada|BOCAGE, BONAIR]]
*[[BONAIR,St.Mark,Grenada|BONAIR]]
*[[BONIAR ROAD, BONAIR,St.Mark,Grenada|BONIAR ROAD, BONAIR]]
*[[CHARLOTTE VALE,St.Mark,Grenada|CHARLOTTE VALE]]
*[[COAST GUARD,St.Mark,Grenada|COAST GUARD]]
*[[CRUICKSHANK ROAD,St.Mark,Grenada|CRUICKSHANK ROAD]]
*[[CRUICKSHANK ROAD, VICTORIA,St.Mark,Grenada|CRUICKSHANK ROAD, VICTORIA]]
*[[DARVEY,St.Mark,Grenada|DARVEY]]
*[[DE VILLA,St.Mark,Grenada|DE VILLA]]
*[[DIAMOND ESTATE,St.Mark,Grenada|DIAMOND ESTATE]]
*[[DIAMOND STREET, VICTORIA,St.Mark,Grenada|DIAMOND STREET, VICTORIA]]
*[[DIEGO PIECE,St.Mark,Grenada|DIEGO PIECE]]
*[[DUQUESNE,St.Mark,Grenada|DUQUESNE]]
*[[FAIR FIELD ROAD, VICTORIA,St.Mark,Grenada|FAIR FIELD ROAD, VICTORIA]]
*[[GALL STREET, VICTORIA,St.Mark,Grenada|GALL STREET, VICTORIA]]
*[[GROSS POINT, GROSS POINT VILLA,St.Mark,Grenada|GROSS POINT, GROSS POINT VILLA]]
*[[INDUSTRY,St.Mark,Grenada|INDUSTRY]]
*[[LA RESOURCE,St.Mark,Grenada|LA RESOURCE]]
*[[MARAN,St.Mark,Grenada|MARAN]]
*[[MT. EDGECOMBE,St.Mark,Grenada|MT. EDGECOMBE]]
*[[MUNRO STREET, VICTORIA,St.Mark,Grenada|MUNRO STREET, VICTORIA]]
*[[NON-PARIEL,St.Mark,Grenada|NON-PARIEL]]
*[[PETIT BOCAGE,St.Mark,Grenada|PETIT BOCAGE]]
*[[QUEEN STREET, VICTORIA,St.Mark,Grenada|QUEEN STREET, VICTORIA]]
*[[RESOURCE,St.Mark,Grenada|RESOURCE]]
*[[RESOURCE, RESOURCE,St.Mark,Grenada|RESOURCE, RESOURCE]]
*[[RIVER SALLEE,St.Mark,Grenada|RIVER SALLEE]]
*[[SAMARITAN,St.Mark,Grenada|SAMARITAN]]
*[[SAMARITAN, DIEGO PIECE,St.Mark,Grenada|SAMARITAN, DIEGO PIECE]]
*[[ST DAVID STREET, VICTORIA,St.Mark,Grenada|ST DAVID STREET, VICTORIA]]
*[[ST JOHN STREET, VICTORIA,St.Mark,Grenada|ST JOHN STREET, VICTORIA]]
*[[STEWAD COTTAGE,St.Mark,Grenada|STEWAD COTTAGE]]
*[[VICTORIA,St.Mark,Grenada|VICTORIA]]
*[[WALTHAM,St.Mark,Grenada|WALTHAM]]
==[[St.Patrick,Grenada|St.Patrick]]==
*[[BATHWAY,St.Patrick,Grenada|BATHWAY]]
*[[BAY ROAD, SAUTEURS,St.Patrick,Grenada|BAY ROAD, SAUTEURS]]
*[[CEDARS,St.Patrick,Grenada|CEDARS]]
*[[CHANTIMELLE,St.Patrick,Grenada|CHANTIMELLE]]
*[[CROSS STREET, SAUTEURS,St.Patrick,Grenada|CROSS STREET, SAUTEURS]]
*[[GLEBE LAND, SAUTEURS,St.Patrick,Grenada|GLEBE LAND, SAUTEURS]]
*[[GLEBE STREET, SAUTEURS,St.Patrick,Grenada|GLEBE STREET, SAUTEURS]]
*[[HERMITAGE,St.Patrick,Grenada|HERMITAGE]]
*[[HIGH GATE, MORNE FENDUE,St.Patrick,Grenada|HIGH GATE, MORNE FENDUE]]
*[[HIGH STREET, SAUTEURS,St.Patrick,Grenada|HIGH STREET, SAUTEURS]]
*[[HILL STREET, SAUTEURS,St.Patrick,Grenada|HILL STREET, SAUTEURS]]
*[[LA FORTUNE,St.Patrick,Grenada|LA FORTUNE]]
*[[LA TASTE,St.Patrick,Grenada|LA TASTE]]
*[[LEVERA,St.Patrick,Grenada|LEVERA]]
*[[MADEYS,St.Patrick,Grenada|MADEYS]]
*[[MAHOUT, ROSE HILL,St.Patrick,Grenada|MAHOUT, ROSE HILL]]
*[[MAIN STREET, SAUTEURS,St.Patrick,Grenada|MAIN STREET, SAUTEURS]]
*[[MARLI,St.Patrick,Grenada|MARLI]]
*[[MC NEILLY ALLEY, MARLI,St.Patrick,Grenada|MC NEILLY ALLEY, MARLI]]
*[[MC NELLIE ALLEY, SAUTEURS,St.Patrick,Grenada|MC NELLIE ALLEY, SAUTEURS]]
*[[MORNE FENDUE,St.Patrick,Grenada|MORNE FENDUE]]
*[[MT. CRAVEN,St.Patrick,Grenada|MT. CRAVEN]]
*[[MT. RICH,St.Patrick,Grenada|MT. RICH]]
*[[MT. ROSE,St.Patrick,Grenada|MT. ROSE]]
*[[PEGGYS WHIM, HERMITAGE,St.Patrick,Grenada|PEGGYS WHIM, HERMITAGE]]
*[[PLAINS,St.Patrick,Grenada|PLAINS]]
*[[POINTZFIELD,St.Patrick,Grenada|POINTZFIELD]]
*[[PROSPECT,St.Patrick,Grenada|PROSPECT]]
*[[RED HEAD STREET, LA FORTUNE,St.Patrick,Grenada|RED HEAD STREET, LA FORTUNE]]
*[[RED HEAD STREET, SAUTEURS,St.Patrick,Grenada|RED HEAD STREET, SAUTEURS]]
*[[RED MUD,St.Patrick,Grenada|RED MUD]]
*[[RIVER SALLEE,St.Patrick,Grenada|RIVER SALLEE]]
*[[ROSE HILL,St.Patrick,Grenada|ROSE HILL]]
*[[SALISBURY RD, SAUTEURS,St.Patrick,Grenada|SALISBURY RD, SAUTEURS]]
*[[SALISBURY STREET, SAUTEURS,St.Patrick,Grenada|SALISBURY STREET, SAUTEURS]]
*[[SAUTEURS,St.Patrick,Grenada|SAUTEURS]]
*[[THE VILLA, SAUTEURS,St.Patrick,Grenada|THE VILLA, SAUTEURS]]
== Uncategorized==
*[[ADAM'S ALLEY,,Grenada|ADAM'S ALLEY]]
*[[AFRICA,,Grenada|AFRICA]]
*[[APSLEY HILL,,Grenada|APSLEY HILL]]
*[[BLUGGO,,Grenada|BLUGGO]]
*[[BYWAY,,Grenada|BYWAY]]
*[[CELESTE,,Grenada|CELESTE]]
*[[CENTRAL DEPRADINE, GOUYAVE,,Grenada|CENTRAL DEPRADINE, GOUYAVE]]
*[[CHADDEAU,,Grenada|CHADDEAU]]
*[[CHANCERY STREET, MUNRO,,Grenada|CHANCERY STREET, MUNRO]]
*[[CHAPEL'S LANE,,Grenada|CHAPEL'S LANE]]
*[[CHURCH HILL ROAD,,Grenada|CHURCH HILL ROAD]]
*[[COOPER'S HILL,,Grenada|COOPER'S HILL]]
*[[CORNWALL STREET, SAUTEURS,,Grenada|CORNWALL STREET, SAUTEURS]]
*[[DE SILLES,,Grenada|DE SILLES]]
*[[DEHAR, GLEBE LAND,,Grenada|DEHAR, GLEBE LAND]]
*[[DOTHAN ESTATE,,Grenada|DOTHAN ESTATE]]
*[[DURRANT ROAD,,Grenada|DURRANT ROAD]]
*[[FENCE,,Grenada|FENCE]]
*[[FERGUSONS LANE, GOUYAVE,,Grenada|FERGUSONS LANE, GOUYAVE]]
*[[FIELD STREET,,Grenada|FIELD STREET]]
*[[FOUNTAIN,,Grenada|FOUNTAIN]]
*[[GLEBE LAND, SAUTEURS,,Grenada|GLEBE LAND, SAUTEURS]]
*[[GRAVEL STREET, VENDOME,,Grenada|GRAVEL STREET, VENDOME]]
*[[GROSS POINT VILLA,,Grenada|GROSS POINT VILLA]]
*[[HENRY STREET,,Grenada|HENRY STREET]]
*[[JONES ROAD,,Grenada|JONES ROAD]]
*[[LOWER CONFERENCE,,Grenada|LOWER CONFERENCE]]
*[[LOWER DEPRADINE, GOUYAVE,,Grenada|LOWER DEPRADINE, GOUYAVE]]
*[[LOWER LAURA,,Grenada|LOWER LAURA]]
*[[LYDER,,Grenada|LYDER]]
*[[MAHOUT, SAUTEURS,,Grenada|MAHOUT, SAUTEURS]]
*[[MAIN STREET, SAUTEURS,,Grenada|MAIN STREET, SAUTEURS]]
*[[MALIGNON,,Grenada|MALIGNON]]
*[[MARINE VILLA,,Grenada|MARINE VILLA]]
*[[MAUCHETTE,,Grenada|MAUCHETTE]]
*[[MC LAINE ALLEY, SAUTEURS,,Grenada|MC LAINE ALLEY, SAUTEURS]]
*[[MELROSE,,Grenada|MELROSE]]
*[[MT. ALEXANDER,,Grenada|MT. ALEXANDER]]
*[[MT. ANON,,Grenada|MT. ANON]]
*[[MT. CUMMA,,Grenada|MT. CUMMA]]
*[[MT. FELIX,,Grenada|MT. FELIX]]
*[[MT. PLASIR,,Grenada|MT. PLASIR]]
*[[MT. REUIL,,Grenada|MT. REUIL]]
*[[MT. RODNEY,,Grenada|MT. RODNEY]]
*[[MT. WILLIAMS,,Grenada|MT. WILLIAMS]]
*[[MUNRO STREET,,Grenada|MUNRO STREET]]
*[[MUNROE STREET, VICTORIA,,Grenada|MUNROE STREET, VICTORIA]]
*[[NETTLE POINT,,Grenada|NETTLE POINT]]
*[[NEW GARDENS,,Grenada|NEW GARDENS]]
*[[OTTLEY'S LANE,,Grenada|OTTLEY'S LANE]]
*[[PARK ESTATE,,Grenada|PARK ESTATE]]
*[[PENNY RETREAT,,Grenada|PENNY RETREAT]]
*[[SAMUELS AVENUE,,Grenada|SAMUELS AVENUE]]
*[[SAUTEURS, MAHOUT,,Grenada|SAUTEURS, MAHOUT]]
*[[SCHOOL LANE,,Grenada|SCHOOL LANE]]
*[[ST. BENOIT'S STREET,,Grenada|ST. BENOIT'S STREET]]
*[[ST. CYR,,Grenada|ST. CYR]]
*[[ST. DAVID STREET,,Grenada|ST. DAVID STREET]]
*[[ST. DOMINIC'S ST.,,Grenada|ST. DOMINIC'S ST.]]
*[[TAYBAKAY,,Grenada|TAYBAKAY]]
*[[TAYLOR,,Grenada|TAYLOR]]
*[[THE SUMMIT,,Grenada|THE SUMMIT]]
*[[THE VILLA, THE ROCK,,Grenada|THE VILLA, THE ROCK]]
*[[VINEYARD,,Grenada|VINEYARD]]
8ad0e7b6f3d81d13d2ff3c2e3b9dd40492d62809
178
177
2022-07-22T16:26:34Z
Wikiricky
1
/* St.George */ added citations
wikitext
text/x-wiki
This is a list of populated villages, towns, settlements, and streets in Grenada. Many of the village names in Grenada are based upon the names of plantations. Grenada has 7 Parishes
==[[St.George,Grenada|St.George]]==
*[[ANNANDALE,St.George,Grenada|ANNANDALE]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/100 Annandale Estate - Legacies of British Slavery - UCL]</ref>
*[[ARCHIBALD AVENUE,St.George,Grenada|ARCHIBALD AVENUE]]
*[[BACK STREET, TEMPE,St.George,Grenada|BACK STREET, TEMPE]]
*[[BAIN'S ALLEY,St.George,Grenada|BAIN'S ALLEY]]
*[[BEAULIEU,St.George,Grenada|BEAULIEU]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1320 <nowiki>Beaulieu [ Grenada | St George ] - UCL</nowiki>]</ref>
*[[BELMONT,St.George,Grenada|BELMONT]]
*[[BLACK FOREST, VENDOME,St.George,Grenada|BLACK FOREST, VENDOME]]
*[[BLACKBURN ALLEY,St.George,Grenada|BLACKBURN ALLEY]]
*[[BOCA,St.George,Grenada|BOCA]]
*[[BON ACCORD ESTATE,St.George,Grenada|BON ACCORD ESTATE]]
*[[BOTANICAL GARDENS,St.George,Grenada|BOTANICAL GARDENS]]
*[[BRIGG'S ALLEY,St.George,Grenada|BRIGG'S ALLEY]]
*[[BRIZAN,St.George,Grenada|BRIZAN]]
*[[CAFE,St.George,Grenada|CAFE]]
*[[CALABASH ALLEY,St.George,Grenada|CALABASH ALLEY]]
*[[CALIVIGNY,St.George,Grenada|CALIVIGNY]]
*[[CALLISTE,St.George,Grenada|CALLISTE]]
*[[CARENAGE,St.George,Grenada|CARENAGE]]
*[[CARRIERE,St.George,Grenada|CARRIERE]]
*[[CEMETERY HILL,St.George,Grenada|CEMETERY HILL]]
*[[CHANTILLY, TEMPE,St.George,Grenada|CHANTILLY, TEMPE]]
*[[CHEMIN RIVER,St.George,Grenada|CHEMIN RIVER]]
*[[CHERRY HILL,St.George,Grenada|CHERRY HILL]]
*[[CHURCH STREET,St.George,Grenada|CHURCH STREET]]
*[[CIRCULAR DRIVE, FREQUENTE,St.George,Grenada|CIRCULAR DRIVE, FREQUENTE]]
*[[CLARKES COURT BAY,St.George,Grenada|CLARKES COURT BAY,]]
*[[COCOA ROAD, MARIAN,St.George,Grenada|COCOA ROAD, MARIAN]]
*[[CONFER,St.George,Grenada|CONFER]]
*[[CONSTANTINE,St.George,Grenada|CONSTANTINE]]
*[[CORBEAU TOWN,St.George,Grenada|CORBEAU TOWN]]
*[[COX ALLEY,St.George,Grenada|COX ALLEY]]
*[[CREIGHTON,St.George,Grenada|CREIGHTON]]
*[[CROSS STREET,St.George,Grenada|CROSS STREET]]
*[[D'ARBEAU,St.George,Grenada|D'ARBEAU]]
*[[DE FAUX,St.George,Grenada|DE FAUX]]
*[[DEPONTHIEU STREET,St.George,Grenada|DEPONTHIEU STREET]]
*[[DE VILLA, BLACKBURN ALLEY,St.George,Grenada|DE VILLA, BLACKBURN ALLEY]]
*[[DIXIE, SPRINGS,St.George,Grenada|DIXIE, SPRINGS]]
*[[DUSTY HIGHWAY, GRAND ANSE,St.George,Grenada|DUSTY HIGHWAY, GRAND ANSE]]
*[[EDGEMOND POINT,St.George,Grenada|EDGEMOND POINT]]
*[[FALL EDGE, GRAND ANSE,St.George,Grenada|FALL EDGE, GRAND ANSE]]
*[[FENTON VILLAGE,St.George,Grenada|FENTON VILLAGE]]
*[[FONTENOY,St.George,Grenada|FONTENOY]]
*[[FORT JUEDY,St.George,Grenada|FORT JUEDY]]
*[[FREQUENTE,St.George,Grenada|FREQUENTE]]
*[[GOLF COURSE,St.George,Grenada|GOLF COURSE]]
*[[GOOD HOPE,St.George,Grenada|GOOD HOPE]]
*[[GORE STREET,St.George,Grenada|GORE STREET]]
*[[GRAND ANSE,St.George,Grenada|GRAND ANSE]]
*[[GRAND ANSE ESTATE, LANCE AUX,St.George,Grenada|GRAND ANSE ESTATE, LANCE AUX]]
*[[GRAND ANSE HOUSING SCHEME,St.George,Grenada|GRAND ANSE HOUSING SCHEME]]
*[[GRAND ANSE VALLEY,St.George,Grenada|GRAND ANSE VALLEY]]
*[[GRAND ETANG ROAD,St.George,Grenada|GRAND ETANG ROAD]]
*[[GRAND MAL,St.George,Grenada|GRAND MAL]]
*[[GRANTON,St.George,Grenada|GRANTON]]
*[[GREEN STREET,St.George,Grenada|GREEN STREET]]
*[[GRENVILLE STREET,St.George,Grenada|GRENVILLE STREET]]
*[[GRENVILLE VALE,St.George,Grenada|GRENVILLE VALE]]
*[[GREY STONE, BELMONT,St.George,Grenada|GREY STONE, BELMONT]]
*[[H.A BLAIZE STREET,St.George,Grenada|H.A BLAIZE STREET]]
*[[HADDON SMITH STREET,St.George,Grenada|HADDON SMITH STREET]]
*[[HALIFAX STREET,St.George,Grenada|HALIFAX STREET]]
*[[HAPPY HILL,St.George,Grenada|HAPPY HILL]]
*[[HILL TOP, CALIVIGNY,St.George,Grenada|HILL TOP, CALIVIGNY]]
*[[HILLS ROAD,St.George,Grenada|HILLS ROAD]]
*[[HILLSBOROUGH STREET,St.George,Grenada|HILLSBOROUGH STREET]]
*[[HOPE VALE,St.George,Grenada|HOPE VALE]]
*[[INDEPENDENCE AVENUE,St.George,Grenada|INDEPENDENCE AVENUE]]
*[[JEAN ANGLIAS,St.George,Grenada|JEAN ANGLIAS]]
*[[JUMBIE,St.George,Grenada|JUMBIE]]
*[[KAFE BEAU HILL,St.George,Grenada|KAFE BEAU HILL]]
*[[LA BORIE,St.George,Grenada|LA BORIE]]
*[[LA MODE,St.George,Grenada|LA MODE]]
*[[LAGOON ROAD,St.George,Grenada|LAGOON ROAD]]
*[[LANCE AUX EPINES,St.George,Grenada|LANCE AUX EPINES]]
*[[LONG GUTTER,St.George,Grenada|LONG GUTTER]]
*[[LOWER MORNE JALOUX,St.George,Grenada|LOWER MORNE JALOUX]]
*[[LOWER WOBURN,St.George,Grenada|LOWER WOBURN]]
*[[LOWTHER'S LANE,St.George,Grenada|LOWTHER'S LANE]]
*[[LUCAS STREET,St.George,Grenada|LUCAS STREET]]
*[[MALONEY STREET,St.George,Grenada|MALONEY STREET]]
*[[MANGO, NEW HAMPSHIRE,St.George,Grenada|MANGO, NEW HAMPSHIRE]]
*[[MARIAN,St.George,Grenada|MARIAN]]
*[[MARKET HILL,St.George,Grenada|MARKET HILL]]
*[[MARRAST HILL,St.George,Grenada|MARRAST HILL]]
*[[MAURICE BISHOP HIGHWAY, GRAND ANSE,St.George,Grenada|MAURICE BISHOP HIGHWAY, GRAND ANSE]]
*[[MAURICE BISHOP HWY, GRAND,St.George,Grenada|MAURICE BISHOP HWY, GRAND]]
*[[MELVILLE STREET,St.George,Grenada|MELVILLE STREET]]
*[[MOLINIERE,St.George,Grenada|MOLINIERE]]
*[[MONT TOUTE,St.George,Grenada|MONT TOUTE]]
*[[MORNE JALOUX,St.George,Grenada|MORNE JALOUX]]
*[[MORNE ROUGE,St.George,Grenada|MORNE ROUGE]]
*[[MORTLEY ROAD,St.George,Grenada|MORTLEY ROAD]]
*[[MT. AIRY,St.George,Grenada|MT. AIRY]]
*[[MT. GAY,St.George,Grenada|MT. GAY]]
*[[MT. HARTMAN,St.George,Grenada|MT. HARTMAN]]
*[[MT. MORITZ,St.George,Grenada|MT. MORITZ]]
*[[MT. PARNASSUS,St.George,Grenada|MT. PARNASSUS]]
*[[MT. RUSH,St.George,Grenada|MT. RUSH]]
*[[MT. WHELDALE,St.George,Grenada|MT. WHELDALE]]
*[[OBSERVATORY ROAD,St.George,Grenada|OBSERVATORY ROAD]]
*[[OLD FORT,St.George,Grenada|OLD FORT]]
*[[PADDOCK,St.George,Grenada|PADDOCK]]
*[[PARADE,St.George,Grenada|PARADE]]
*[[PARK LANE,St.George,Grenada|PARK LANE]]
*[[PERSEVERANCE,St.George,Grenada|PERSEVERANCE]]
*[[PETERSFIELD,St.George,Grenada|PETERSFIELD]]
*[[POINT SALINES,St.George,Grenada|POINT SALINES]]
*[[QUEEN'S PARK,St.George,Grenada|QUEEN'S PARK]]
*[[RADIX, MT. PARNASSUS,St.George,Grenada|RADIX, MT. PARNASSUS]]
*[[RAVINE, MT. GAY,St.George,Grenada|RAVINE, MT. GAY]]
*[[RICHMOND HILL,St.George,Grenada|RICHMOND HILL]]
*[[RIVER ROAD,St.George,Grenada|RIVER ROAD]]
*[[ROEBUCK,St.George,Grenada|ROEBUCK]]
*[[SANS SOUCI,St.George,Grenada|SANS SOUCI]]
*[[SCOTT STREET,St.George,Grenada|SCOTT STREET]]
*[[SHENDA,St.George,Grenada|SHENDA]]
*[[SIMMONS STREET,St.George,Grenada|SIMMONS STREET]]
*[[SNUG CORNER,St.George,Grenada|SNUG CORNER]]
*[[SPRINGS,St.George,Grenada|SPRINGS]]
*[[ST. GEORGE ESTATE,St.George,Grenada|ST. GEORGE ESTATE]]
*[[ST. JOHN STREET,St.George,Grenada|ST. JOHN STREET]]
*[[ST. JUILLE STREET,St.George,Grenada|ST. JUILLE STREET]]
*[[ST.PAUL'S,St.George,Grenada|ST.PAUL'S]]
*[[SUNSET VALLEY, POINT SALINES,St.George,Grenada|SUNSET VALLEY, POINT SALINES]]
*[[TANTEEN, TANTEEN TERRACE,St.George,Grenada|TANTEEN, TANTEEN TERRACE]]
*[[TEMPE,St.George,Grenada|TEMPE]]
*[[TETMUND,St.George,Grenada|TETMUND]]
*[[THE BOCAS,St.George,Grenada|THE BOCAS]]
*[[THE GREENS,St.George,Grenada|THE GREENS]]
*[[THE LIMES,St.George,Grenada|THE LIMES]]
*[[THE STONES, GRAND ANSE,St.George,Grenada|THE STONES, GRAND ANSE]]
*[[THE STONES, NEW HAMPSHIRE,St.George,Grenada|THE STONES, NEW HAMPSHIRE]]
*[[THE VILLA, LONG GUTTER,St.George,Grenada|THE VILLA, LONG GUTTER]]
*[[TRANQUIL LANE,St.George,Grenada|TRANQUIL LANE]]
*[[TRUE BLUE,St.George,Grenada|TRUE BLUE]]
*[[TRYNE ALLEY,St.George,Grenada|TRYNE ALLEY]]
*[[TURTLE BACK DRIVE, LANCE AUX,St.George,Grenada|TURTLE BACK DRIVE, LANCE AUX]]
*[[TYRREL STREET,St.George,Grenada|TYRREL STREET]]
*[[UPPER MORNE JALOUX,St.George,Grenada|UPPER MORNE JALOUX]]
*[[UPPER WOBURN,St.George,Grenada|UPPER WOBURN]]
*[[VENDOME,St.George,Grenada|VENDOME]]
*[[WELCOME,St.George,Grenada|WELCOME]]
*[[WHITE GUN,St.George,Grenada|WHITE GUN]]
*[[WHITE HALL, PARK LANE,St.George,Grenada|WHITE HALL, PARK LANE]]
*[[WILLIAMSON ROAD,St.George,Grenada|WILLIAMSON ROAD]]
*[[WILLIS,St.George,Grenada|WILLIS]]
*[[WOODLANDS,St.George,Grenada|WOODLANDS]]
*[[WOOLWICH ROAD,St.George,Grenada|WOOLWICH ROAD]]
*[[YOUNG STREET,St.George,Grenada|YOUNG STREET]]
==[[St.John,Grenada|St.John]]==
*[[BACK STREET,St.John,Grenada|BACK STREET]]
*[[BELVIDERE,St.John,Grenada|BELVIDERE]]
*[[BLACK BAY,St.John,Grenada|BLACK BAY]]
*[[BOYKES LANE, GOUYAVE,St.John,Grenada|BOYKES LANE, GOUYAVE]]
*[[BROOKLYN,St.John,Grenada|BROOKLYN]]
*[[BROTHERS ESTATE,St.John,Grenada|BROTHERS ESTATE]]
*[[CENTRAL DEPRADINE STREET,St.John,Grenada|CENTRAL DEPRADINE STREET]]
*[[CLOZIER,St.John,Grenada|CLOZIER]]
*[[CONCORD,St.John,Grenada|CONCORD]]
*[[CORNETS WALK, GOUYAVE,St.John,Grenada|CORNETS WALK, GOUYAVE]]
*[[COTTON BAILY,St.John,Grenada|COTTON BAILY]]
*[[D LANCE, UPPER DEPRADINE,St.John,Grenada|D LANCE, UPPER DEPRADINE]]
*[[DOCTOR BELLE,St.John,Grenada|DOCTOR BELLE]]
*[[DOUGALDSTON,St.John,Grenada|DOUGALDSTON]]
*[[EDWARD STREET, GOUYAVE,St.John,Grenada|EDWARD STREET, GOUYAVE]]
*[[FERGUSON'S LANE,St.John,Grenada|FERGUSON'S LANE]]
*[[FLORIDA,St.John,Grenada|FLORIDA]]
*[[GOUYAVE ESTATE,St.John,Grenada|GOUYAVE ESTATE]]
*[[GRAND ROY,St.John,Grenada|GRAND ROY]]
*[[HILLSVIEW, GOUYAVE,St.John,Grenada|HILLSVIEW, GOUYAVE]]
*[[LANGTON ROAD, GOUYAVE,St.John,Grenada|LANGTON ROAD, GOUYAVE]]
*[[LOWER DEPRADINE STREET,St.John,Grenada|LOWER DEPRADINE STREET]]
*[[MARIGOT,St.John,Grenada|MARIGOT]]
*[[MITCHELL'S LANE,St.John,Grenada|MITCHELL'S LANE]]
*[[MONGO ROAD, GOUYAVE ESTATE,St.John,Grenada|MONGO ROAD, GOUYAVE ESTATE]]
*[[MT. GRANBY,St.John,Grenada|MT. GRANBY]]
*[[MT. NESBIT,St.John,Grenada|MT. NESBIT]]
*[[NEW STREET, EDWARD STREET,St.John,Grenada|NEW STREET, EDWARD STREET]]
*[[NEW STREET, GOUYAVE,St.John,Grenada|NEW STREET, GOUYAVE]]
*[[PALMISTE,St.John,Grenada|PALMISTE]]
*[[QUEEN STREET, ST. JOHN'S,St.John,Grenada|QUEEN STREET, ST. JOHN'S]]
*[[RENNIE,St.John,Grenada|RENNIE]]
*[[RIVER LANE, GOUYAVE ESTATE,St.John,Grenada|RIVER LANE, GOUYAVE ESTATE]]
*[[RIVER LANE, GOUYAVE,St.John,Grenada|RIVER LANE, GOUYAVE]]
*[[ROSEMOUNT,St.John,Grenada|ROSEMOUNT]]
*[[SCHOOL LANE, GOUYAVE,St.John,Grenada|SCHOOL LANE, GOUYAVE]]
*[[ST BENOIT STREET, GOUYAVE,St.John,Grenada|ST BENOIT STREET, GOUYAVE]]
*[[ST DOMINIC STREET, GOUYAVE,St.John,Grenada|ST DOMINIC STREET, GOUYAVE]]
*[[ST DOMINIC, GOUYAVE,St.John,Grenada|ST DOMINIC, GOUYAVE]]
*[[ST FRANCIS, GOUYAVE,St.John,Grenada|ST FRANCIS, GOUYAVE]]
*[[ST PETERS STREET, GOUYAVE,St.John,Grenada|ST PETERS STREET, GOUYAVE]]
*[[ST PETERS, GOUYAVE,St.John,Grenada|ST PETERS, GOUYAVE]]
*[[ST. FRANCIS STREET,St.John,Grenada|ST. FRANCIS STREET]]
*[[ST. PETER STREET,St.John,Grenada|ST. PETER STREET]]
*[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]]
*[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]]
*[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]]
*[[UPPER DEPRADINE STREET,St.John,Grenada|UPPER DEPRADINE STREET]]
*[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]]
*[[VICTORIA ROAD, GOUYAVE,St.John,Grenada|VICTORIA ROAD, GOUYAVE]]
*[[VICTORIA STREET,St.John,Grenada|VICTORIA STREET]]
*[[WATERLOO,St.John,Grenada|WATERLOO]]
*[[WOODFORD,St.John,Grenada|WOODFORD]]
==[[St.David,Grenada|St.David]]==
*[[APRES TOUTE,St.David,Grenada|APRES TOUTE]]
*[[BAILLES BACOLET,St.David,Grenada|BAILLES BACOLET]]
*[[BEATON,St.David,Grenada|BEATON]]
*[[BELLE ISLE,St.David,Grenada|BELLE ISLE]]
*[[BELLE VUE,St.David,Grenada|BELLE VUE]]
*[[BOCAGE,St.David,Grenada|BOCAGE]]
*[[CHAMPFLEURS,St.David,Grenada|CHAMPFLEURS]]
*[[COALS GAPS,St.David,Grenada|COALS GAPS]]
*[[CONTENT,St.David,Grenada|CONTENT]]
*[[CORINTH,St.David,Grenada|CORINTH]]
*[[DUDMAR,St.David,Grenada|DUDMAR]]
*[[EPPIN FOREST,St.David,Grenada|EPPIN FOREST]]
*[[HARMONY HALL,St.David,Grenada|HARMONY HALL]]
*[[LA CALOHME,St.David,Grenada|LA CALOHME]]
*[[LA FEMME,St.David,Grenada|LA FEMME]]
*[[LA FLORETTA,St.David,Grenada|LA FLORETTA]]
*[[LA PASTORA,St.David,Grenada|LA PASTORA]]
*[[LA SAGESSE,St.David,Grenada|LA SAGESSE]]
*[[LA TANTE,St.David,Grenada|LA TANTE]]
*[[MARLMOUNT,St.David,Grenada|MARLMOUNT]]
*[[MARDIGRAS,St.David,Grenada|MARDIGRAS]]
*[[MARLMOUNT, GLEBE LAND,St.David,Grenada|MARLMOUNT, GLEBE LAND]]
*[[MAULTY,St.David,Grenada|MAULTY]]
*[[MAYANN, CONSTANTINE,St.David,Grenada|MAYANN, CONSTANTINE]]
*[[MINORCA,St.David,Grenada|MINORCA]]
*[[MORNE DELICE,St.David,Grenada|MORNE DELICE]]
*[[MON REPOS,St.David,Grenada|MON REPOS]]
*[[MT. AGNES,St.David,Grenada|MT. AGNES]]
*[[MT. DISIRE,St.David,Grenada|MT. DISIRE]]
*[[MT. ROSE,St.David,Grenada|MT. ROSE]]
*[[MYANN, CONSTANTINE,St.David,Grenada|MYANN, CONSTANTINE]]
*[[NEW WESTERHALL,St.David,Grenada|NEW WESTERHALL]]
*[[OLD WESTERHALL,St.David,Grenada|OLD WESTERHALL]]
*[[PERDMONTEMPS,St.David,Grenada|PERDMONTEMPS]]
*[[PETITE BACAYE, NEW,St.David,Grenada|PETITE BACAYE, NEW]]
*[[PETITE ESPERANCE,St.David,Grenada|PETITE ESPERANCE]]
*[[PETITE ETANG,St.David,Grenada|PETITE ETANG]]
*[[POMME ROSE,St.David,Grenada|POMME ROSE]]
*[[RED GATE,St.David,Grenada|RED GATE]]
*[[REDMUD,St.David,Grenada|REDMUD]]
*[[REQUIN,St.David,Grenada|REQUIN]]
*[[SLINGER STREET,St.David,Grenada|SLINGER STREET]]
*[[SYRACUSE,St.David,Grenada|SYRACUSE]]
*[[THEBAIDE,St.David,Grenada|THEBAIDE]]
*[[TABOR,St.David,Grenada|TABOR]]
*[[UPPER LAURA,St.David,Grenada|UPPER LAURA]]
*[[VINCENNES,St.David,Grenada|VINCENNES]]
*[[WESTERHALL POINT,St.David,Grenada|WESTERHALL POINT]]
*[[WINDSOR,St.David,Grenada|WINDSOR]]
*[[WINDSOR FOREST,St.David,Grenada|WINDSOR FOREST]]
==[[Carriacou and Petite Martinique,Grenada|Carriacou and Petite Martinique]]==
*[[BAYALEAU,Carriacou,Grenada|BAYALEAU]]
*[[BEAUSEJOUR,Carriacou,Grenada|BEAUSEJOUR]]
*[[BELAIR,Carriacou,Grenada|BELAIR]]
*[[BELLE VUE,Carriacou,Grenada|BELLE VUE]]
*[[BELMONT,Carriacou,Grenada|BELMONT]]
*[[BOGLES,Carriacou,Grenada|BOGLES]]
*[[BRUNSWICK,Carriacou,Grenada|BRUNSWICK]]
*[[CHURCH STREET, HILLSBOROUGH,Carriacou,Grenada|CHURCH STREET, HILLSBOROUGH]]
*[[CRAIGSTON,Carriacou,Grenada|CRAIGSTON]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1385]</ref>
*[[CHERRY HILL,Carriacou,Grenada|CHERRY HILL]]
*[[DOVER,Carriacou,Grenada|DOVER]]
*[[DUMFRIES,Carriacou,Grenada|DUMFRIES]]
*[[GRAND BAY,Carriacou,Grenada|GRAND BAY]]
*[[HARVEY VALE,Carriacou,Grenada|HARVEY VALE]]
*[[HERMITAGE,Carriacou,Grenada|HERMITAGE]]
*[[HILLSBOROUGH,Carriacou,Grenada|HILLSBOROUGH]]
*[[L'ESTERRE,Carriacou,Grenada|L'ESTERRE]]
*[[LAURISTON,Carriacou,Grenada|LAURISTON]]
*[[LIMLAIR,Carriacou,Grenada|LIMLAIR]]
*[[MELDRUM,Carriacou,Grenada|MELDRUM]]
*[[MT. DISIRE,Carriacou,Grenada|MT. DISIRE]]
*[[MT. PLEASANT,Carriacou,Grenada|MT. PLEASANT]]
*[[MT. ST ERVANS, L'ESTERRIE,Carriacou,Grenada|MT ST ERVANS, L'ESTERRIE]]
*[[MT. ROYAL,Carriacou,Grenada|MT. ROYAL]]
*[[PROSPECT HALL,Carriacou,Grenada|PROSPECT HALL]]
*[[SIX ROADS,Carriacou,Grenada|SIX ROADS]]
*[[TOP HILL,Carriacou,Grenada|TOP HILL]]
*[[WINDWARD,Carriacou,Grenada|WINDWARD]]
*[[PETITE MARTINIQUE,PETIT MARTINIQUE,Grenada|PETITE MARTINIQUE]]
==[[St.Andrew,Grenada|St.Andrew]]==
*[[MT. FANN,St. Andrew,Grenada|MT. FANN]]
*[[ADELPHI,St.Andrew,Grenada|ADELPHI]]
*[[AHOMA,St.Andrew,Grenada|AHOMA]]
*[[BALTHAZAR,St.Andrew,Grenada|BALTHAZAR]]
*[[BAYROAD,St.Andrew,Grenada|BAYROAD]]
*[[BLAIZE,St.Andrew,Grenada|BLAIZE]]
*[[BAMBOO,St.Andrew,Grenada|BAMBOO]]
*[[BATTLE HILL,St.Andrew,Grenada|BATTLE HILL]]
*[[BEAUREGARD,St.Andrew,Grenada|BEAUREGARD]]
*[[BELLE VUE,St.Andrew,Grenada|BELLE VUE]]
*[[BELVEDERE,St.Andrew,Grenada|BELVEDERE]]
*[[BEN JONES STREET,St.Andrew,Grenada|BEN JONES STREET]]
*[[BIRCHGROVE,St.Andrew,Grenada|BIRCHGROVE]]
*[[BYELANDS,St.Andrew,Grenada|BYELANDS]]
*[[CAFE,St.Andrew,Grenada|CAFE]]
*[[CANAL ROAD,St.Andrew,Grenada|CANAL ROAD]]
*[[CARRIERE,St.Andrew,Grenada|CARRIERE]]
*[[CARRUTH,St.Andrew,Grenada|CARRUTH]]
*[[CASTIGNE,St.Andrew,Grenada|CASTIGNE]]
*[[CHAPEL ROAD,St.Andrew,Grenada|CHAPEL ROAD]]
*[[COCOA ROAD,St.Andrew,Grenada|COCOA ROAD]]
*[[CODRONA,St.Andrew,Grenada|CODRONA]]
*[[CONFERENCE,St.Andrew,Grenada|CONFERENCE]]
*[[COOKHILL ROAD,St.Andrew,Grenada|COOKHILL ROAD]]
*[[CROCHU,St.Andrew,Grenada|CROCHU]]
*[[DE BLANDEAU,St.Andrew,Grenada|DE BLANDEAU]]
*[[DUNFERMLINE,St.Andrew,Grenada|DUNFERMLINE]]
*[[DURRANT ROAD,St.Andrew,Grenada|DURRANT ROAD]]
*[[FORD HILL ROAD,St.Andrew,Grenada|FORD HILL ROAD]]
*[[FELIX PARK,St.Andrew,Grenada|FELIX PARK]]
*[[GRANLETTE,St.Andrew,Grenada|GRANLETTE]]
*[[GEORGE V. STREET,St.Andrew,Grenada|GEORGE V. STREET]]
*[[GLADSTONE ROAD,St.Andrew,Grenada|GLADSTONE ROAD]]
*[[GOUYAVE,St.Andrew,Grenada|GOUYAVE]]
*[[GRAND BACOLET,St.Andrew,Grenada|GRAND BACOLET]]
*[[GRAND BRAS,St.Andrew,Grenada|GRAND BRAS]]
*[[GRIFFIN LANE,St.Andrew,Grenada|GRIFFIN LANE]]
*[[GUPO,St.Andrew,Grenada|GUPO]]
*[[HARFORD VILLAGE,St.Andrew,Grenada|HARFORD VILLAGE]]
*[[HERMON,St.Andrew,Grenada|HERMON]]
*[[HILLS ROAD, LOWER,St.Andrew,Grenada|HILLS ROAD]]
*[[HOPE,St.Andrew,Grenada|HOPE]]
*[[HOPE CITY,St.Andrew,Grenada|HOPE CITY]]
*[[LA DIGUE,St.Andrew,Grenada|LA DIGUE]]
*[[LA FILLETTE,St.Andrew,Grenada|LA FILLETTE]]
*[[LA POTERIE,St.Andrew,Grenada|LA POTERIE]]
*[[L'ESTERRIE,St.Andrew,Grenada|L'ESTERRIE]]
*[[LOWER CAPITOL,St.Andrew,Grenada|LOWER CAPITOL]]
*[[LOWER HARFORD VILLAGE,St.Andrew,Grenada|LOWER HARFORD VILLAGE]]
*[[MAHOUT,St.Andrew,Grenada|MAHOUT]]
*[[MAMMA CANNES,St.Andrew,Grenada|MAMMA CANNES]]
*[[MARQUIS,St.Andrew,Grenada|MARQUIS]]
*[[MC NELLIE ALLEY, SAUTEURS,St.Andrew,Grenada|MC NELLIE ALLEY, SAUTEURS]]
*[[MC NEILLY, SAUTEURS,St.Andrew,Grenada|MC NEILLY, SAUTEURS]]
*[[MEADOW,St.Andrew,Grenada|MEADOW]]
*[[MELDRUM,St.Andrew,Grenada|MELDRUM]]
*[[MIRABEAU,St.Andrew,Grenada|MIRABEAU]]
*[[MORNE LOUNGE,St.Andrew,Grenada|MORNE LOUNGE]]
*[[MOYAH,St.Andrew,Grenada|MOYAH]]
*[[MT. ST ERVANS, LA DIGUE,St.Andrew,Grenada|MT ST ERVANS, LA DIGUE]]
*[[MT. CARMEL,St.Andrew,Grenada|MT. CARMEL]]
*[[MT. HORNE,St.Andrew,Grenada|MT. HORNE]]
*[[MT. PLEASANT,St.Andrew,Grenada|MT. PLEASANT]]
*[[MT. SEALEY,St.Andrew,Grenada|MT. SEALEY]]
*[[MUNICH,St.Andrew,Grenada|MUNICH]]
*[[NEW HAMPSHIRE,St.Andrew,Grenada|NEW HAMPSHIRE]]
*[[NOELSVILLE,St.Andrew,Grenada|NOELSVILLE]]
*[[PARACLETE,St.Andrew,Grenada|PARACLETE]]
*[[PARADISE,St.Andrew,Grenada|PARADISE]]
*[[PEARLS,St.Andrew,Grenada|PEARLS]]
*[[PLATEAU,St.Andrew,Grenada|PLATEAU]]
*[[PLEASANCE,St.Andrew,Grenada|PLEASANCE]]
*[[POST ROYAL,St.Andrew,Grenada|POST ROYAL]]
*[[PROVIDENCE,St.Andrew,Grenada|PROVIDENCE]]
*[[RETREAT,St.Andrew,Grenada|RETREAT]]
*[[RICHMOND,St.Andrew,Grenada|RICHMOND]]
*[[RIVULET LANE,St.Andrew,Grenada|RIVULET LANE]]
*[[SABB,St.Andrew,Grenada|SABB]]
*[[SALISBURY ROAD,St.Andrew,Grenada|SALISBURY ROAD]]
*[[SAMUEL AVENUE, CALIVIGNY,St.Andrew,Grenada|SAMUEL AVENUE, CALIVIGNY]]
*[[SEATON BROWNE STREET,St.Andrew,Grenada|SEATON BROWNE STREET]]
*[[SEATON JAMES STREET,St.Andrew,Grenada|SEATON JAMES STREET]]
*[[SENDALL STREET,St.Andrew,Grenada|SENDALL STREET]]
*[[SIMON,St.Andrew,Grenada|SIMON]]
*[[SNELL HALL,St.Andrew,Grenada|SNELL HALL]]
*[[SOUBISE,St.Andrew,Grenada|SOUBISE]]
*[[SPRING GARDEN,St.Andrew,Grenada|SPRING GARDEN]]
*[[ST. CLOUDS,St.Andrew,Grenada|ST. CLOUDS]]
*[[ST. JAMES,St.Andrew,Grenada|ST. JAMES]]
*[[ST. JOHNS,St.Andrew,Grenada|ST. JOHNS]]
*[[TOUS CONGO,St.Andrew,Grenada|TOUS CONGO]]
*[[TELESCOPE,St.Andrew,Grenada|TELESCOPE]]
*[[TIVOLI,St.Andrew,Grenada|TIVOLI]]
*[[TUILLIERIES,St.Andrew,Grenada|TUILLIERIES]]
*[[UNION,St.Andrew,Grenada|UNION]]
*[[UPPER CAPITOL,St.Andrew,Grenada|UPPER CAPITOL]]
*[[THE VILLA,St.Andrew,Grenada|THE VILLA]]
*[[VILLAGE ROAD,St.Andrew,Grenada|VILLAGE ROAD]]
*[[VICTORIA STREET,St.Andrew,Grenada|VICTORIA STREET]]
*[[WALKER,St.Andrew,Grenada|WALKER]]
*[[WELLS ROAD,St.Andrew,Grenada|WELLS ROAD]]
==[[St.Mark,Grenada|St.Mark]]==
*[[BOCAGE,St.Mark,Grenada|BOCAGE]]
*[[BOCAGE, BONAIR,St.Mark,Grenada|BOCAGE, BONAIR]]
*[[BONAIR,St.Mark,Grenada|BONAIR]]
*[[BONIAR ROAD, BONAIR,St.Mark,Grenada|BONIAR ROAD, BONAIR]]
*[[CHARLOTTE VALE,St.Mark,Grenada|CHARLOTTE VALE]]
*[[COAST GUARD,St.Mark,Grenada|COAST GUARD]]
*[[CRUICKSHANK ROAD,St.Mark,Grenada|CRUICKSHANK ROAD]]
*[[CRUICKSHANK ROAD, VICTORIA,St.Mark,Grenada|CRUICKSHANK ROAD, VICTORIA]]
*[[DARVEY,St.Mark,Grenada|DARVEY]]
*[[DE VILLA,St.Mark,Grenada|DE VILLA]]
*[[DIAMOND ESTATE,St.Mark,Grenada|DIAMOND ESTATE]]
*[[DIAMOND STREET, VICTORIA,St.Mark,Grenada|DIAMOND STREET, VICTORIA]]
*[[DIEGO PIECE,St.Mark,Grenada|DIEGO PIECE]]
*[[DUQUESNE,St.Mark,Grenada|DUQUESNE]]
*[[FAIR FIELD ROAD, VICTORIA,St.Mark,Grenada|FAIR FIELD ROAD, VICTORIA]]
*[[GALL STREET, VICTORIA,St.Mark,Grenada|GALL STREET, VICTORIA]]
*[[GROSS POINT, GROSS POINT VILLA,St.Mark,Grenada|GROSS POINT, GROSS POINT VILLA]]
*[[INDUSTRY,St.Mark,Grenada|INDUSTRY]]
*[[LA RESOURCE,St.Mark,Grenada|LA RESOURCE]]
*[[MARAN,St.Mark,Grenada|MARAN]]
*[[MT. EDGECOMBE,St.Mark,Grenada|MT. EDGECOMBE]]
*[[MUNRO STREET, VICTORIA,St.Mark,Grenada|MUNRO STREET, VICTORIA]]
*[[NON-PARIEL,St.Mark,Grenada|NON-PARIEL]]
*[[PETIT BOCAGE,St.Mark,Grenada|PETIT BOCAGE]]
*[[QUEEN STREET, VICTORIA,St.Mark,Grenada|QUEEN STREET, VICTORIA]]
*[[RESOURCE,St.Mark,Grenada|RESOURCE]]
*[[RESOURCE, RESOURCE,St.Mark,Grenada|RESOURCE, RESOURCE]]
*[[RIVER SALLEE,St.Mark,Grenada|RIVER SALLEE]]
*[[SAMARITAN,St.Mark,Grenada|SAMARITAN]]
*[[SAMARITAN, DIEGO PIECE,St.Mark,Grenada|SAMARITAN, DIEGO PIECE]]
*[[ST DAVID STREET, VICTORIA,St.Mark,Grenada|ST DAVID STREET, VICTORIA]]
*[[ST JOHN STREET, VICTORIA,St.Mark,Grenada|ST JOHN STREET, VICTORIA]]
*[[STEWAD COTTAGE,St.Mark,Grenada|STEWAD COTTAGE]]
*[[VICTORIA,St.Mark,Grenada|VICTORIA]]
*[[WALTHAM,St.Mark,Grenada|WALTHAM]]
==[[St.Patrick,Grenada|St.Patrick]]==
*[[BATHWAY,St.Patrick,Grenada|BATHWAY]]
*[[BAY ROAD, SAUTEURS,St.Patrick,Grenada|BAY ROAD, SAUTEURS]]
*[[CEDARS,St.Patrick,Grenada|CEDARS]]
*[[CHANTIMELLE,St.Patrick,Grenada|CHANTIMELLE]]
*[[CROSS STREET, SAUTEURS,St.Patrick,Grenada|CROSS STREET, SAUTEURS]]
*[[GLEBE LAND, SAUTEURS,St.Patrick,Grenada|GLEBE LAND, SAUTEURS]]
*[[GLEBE STREET, SAUTEURS,St.Patrick,Grenada|GLEBE STREET, SAUTEURS]]
*[[HERMITAGE,St.Patrick,Grenada|HERMITAGE]]
*[[HIGH GATE, MORNE FENDUE,St.Patrick,Grenada|HIGH GATE, MORNE FENDUE]]
*[[HIGH STREET, SAUTEURS,St.Patrick,Grenada|HIGH STREET, SAUTEURS]]
*[[HILL STREET, SAUTEURS,St.Patrick,Grenada|HILL STREET, SAUTEURS]]
*[[LA FORTUNE,St.Patrick,Grenada|LA FORTUNE]]
*[[LA TASTE,St.Patrick,Grenada|LA TASTE]]
*[[LEVERA,St.Patrick,Grenada|LEVERA]]
*[[MADEYS,St.Patrick,Grenada|MADEYS]]
*[[MAHOUT, ROSE HILL,St.Patrick,Grenada|MAHOUT, ROSE HILL]]
*[[MAIN STREET, SAUTEURS,St.Patrick,Grenada|MAIN STREET, SAUTEURS]]
*[[MARLI,St.Patrick,Grenada|MARLI]]
*[[MC NEILLY ALLEY, MARLI,St.Patrick,Grenada|MC NEILLY ALLEY, MARLI]]
*[[MC NELLIE ALLEY, SAUTEURS,St.Patrick,Grenada|MC NELLIE ALLEY, SAUTEURS]]
*[[MORNE FENDUE,St.Patrick,Grenada|MORNE FENDUE]]
*[[MT. CRAVEN,St.Patrick,Grenada|MT. CRAVEN]]
*[[MT. RICH,St.Patrick,Grenada|MT. RICH]]
*[[MT. ROSE,St.Patrick,Grenada|MT. ROSE]]
*[[PEGGYS WHIM, HERMITAGE,St.Patrick,Grenada|PEGGYS WHIM, HERMITAGE]]
*[[PLAINS,St.Patrick,Grenada|PLAINS]]
*[[POINTZFIELD,St.Patrick,Grenada|POINTZFIELD]]
*[[PROSPECT,St.Patrick,Grenada|PROSPECT]]
*[[RED HEAD STREET, LA FORTUNE,St.Patrick,Grenada|RED HEAD STREET, LA FORTUNE]]
*[[RED HEAD STREET, SAUTEURS,St.Patrick,Grenada|RED HEAD STREET, SAUTEURS]]
*[[RED MUD,St.Patrick,Grenada|RED MUD]]
*[[RIVER SALLEE,St.Patrick,Grenada|RIVER SALLEE]]
*[[ROSE HILL,St.Patrick,Grenada|ROSE HILL]]
*[[SALISBURY RD, SAUTEURS,St.Patrick,Grenada|SALISBURY RD, SAUTEURS]]
*[[SALISBURY STREET, SAUTEURS,St.Patrick,Grenada|SALISBURY STREET, SAUTEURS]]
*[[SAUTEURS,St.Patrick,Grenada|SAUTEURS]]
*[[THE VILLA, SAUTEURS,St.Patrick,Grenada|THE VILLA, SAUTEURS]]
== Uncategorized==
*[[ADAM'S ALLEY,,Grenada|ADAM'S ALLEY]]
*[[AFRICA,,Grenada|AFRICA]]
*[[APSLEY HILL,,Grenada|APSLEY HILL]]
*[[BLUGGO,,Grenada|BLUGGO]]
*[[BYWAY,,Grenada|BYWAY]]
*[[CELESTE,,Grenada|CELESTE]]
*[[CENTRAL DEPRADINE, GOUYAVE,,Grenada|CENTRAL DEPRADINE, GOUYAVE]]
*[[CHADDEAU,,Grenada|CHADDEAU]]
*[[CHANCERY STREET, MUNRO,,Grenada|CHANCERY STREET, MUNRO]]
*[[CHAPEL'S LANE,,Grenada|CHAPEL'S LANE]]
*[[CHURCH HILL ROAD,,Grenada|CHURCH HILL ROAD]]
*[[COOPER'S HILL,,Grenada|COOPER'S HILL]]
*[[CORNWALL STREET, SAUTEURS,,Grenada|CORNWALL STREET, SAUTEURS]]
*[[DE SILLES,,Grenada|DE SILLES]]
*[[DEHAR, GLEBE LAND,,Grenada|DEHAR, GLEBE LAND]]
*[[DOTHAN ESTATE,,Grenada|DOTHAN ESTATE]]
*[[DURRANT ROAD,,Grenada|DURRANT ROAD]]
*[[FENCE,,Grenada|FENCE]]
*[[FERGUSONS LANE, GOUYAVE,,Grenada|FERGUSONS LANE, GOUYAVE]]
*[[FIELD STREET,,Grenada|FIELD STREET]]
*[[FOUNTAIN,,Grenada|FOUNTAIN]]
*[[GLEBE LAND, SAUTEURS,,Grenada|GLEBE LAND, SAUTEURS]]
*[[GRAVEL STREET, VENDOME,,Grenada|GRAVEL STREET, VENDOME]]
*[[GROSS POINT VILLA,,Grenada|GROSS POINT VILLA]]
*[[HENRY STREET,,Grenada|HENRY STREET]]
*[[JONES ROAD,,Grenada|JONES ROAD]]
*[[LOWER CONFERENCE,,Grenada|LOWER CONFERENCE]]
*[[LOWER DEPRADINE, GOUYAVE,,Grenada|LOWER DEPRADINE, GOUYAVE]]
*[[LOWER LAURA,,Grenada|LOWER LAURA]]
*[[LYDER,,Grenada|LYDER]]
*[[MAHOUT, SAUTEURS,,Grenada|MAHOUT, SAUTEURS]]
*[[MAIN STREET, SAUTEURS,,Grenada|MAIN STREET, SAUTEURS]]
*[[MALIGNON,,Grenada|MALIGNON]]
*[[MARINE VILLA,,Grenada|MARINE VILLA]]
*[[MAUCHETTE,,Grenada|MAUCHETTE]]
*[[MC LAINE ALLEY, SAUTEURS,,Grenada|MC LAINE ALLEY, SAUTEURS]]
*[[MELROSE,,Grenada|MELROSE]]
*[[MT. ALEXANDER,,Grenada|MT. ALEXANDER]]
*[[MT. ANON,,Grenada|MT. ANON]]
*[[MT. CUMMA,,Grenada|MT. CUMMA]]
*[[MT. FELIX,,Grenada|MT. FELIX]]
*[[MT. PLASIR,,Grenada|MT. PLASIR]]
*[[MT. REUIL,,Grenada|MT. REUIL]]
*[[MT. RODNEY,,Grenada|MT. RODNEY]]
*[[MT. WILLIAMS,,Grenada|MT. WILLIAMS]]
*[[MUNRO STREET,,Grenada|MUNRO STREET]]
*[[MUNROE STREET, VICTORIA,,Grenada|MUNROE STREET, VICTORIA]]
*[[NETTLE POINT,,Grenada|NETTLE POINT]]
*[[NEW GARDENS,,Grenada|NEW GARDENS]]
*[[OTTLEY'S LANE,,Grenada|OTTLEY'S LANE]]
*[[PARK ESTATE,,Grenada|PARK ESTATE]]
*[[PENNY RETREAT,,Grenada|PENNY RETREAT]]
*[[SAMUELS AVENUE,,Grenada|SAMUELS AVENUE]]
*[[SAUTEURS, MAHOUT,,Grenada|SAUTEURS, MAHOUT]]
*[[SCHOOL LANE,,Grenada|SCHOOL LANE]]
*[[ST. BENOIT'S STREET,,Grenada|ST. BENOIT'S STREET]]
*[[ST. CYR,,Grenada|ST. CYR]]
*[[ST. DAVID STREET,,Grenada|ST. DAVID STREET]]
*[[ST. DOMINIC'S ST.,,Grenada|ST. DOMINIC'S ST.]]
*[[TAYBAKAY,,Grenada|TAYBAKAY]]
*[[TAYLOR,,Grenada|TAYLOR]]
*[[THE SUMMIT,,Grenada|THE SUMMIT]]
*[[THE VILLA, THE ROCK,,Grenada|THE VILLA, THE ROCK]]
*[[VINEYARD,,Grenada|VINEYARD]]
403053ad4a1a16e83d4c9618e37ddec798fe3d4a
179
178
2022-07-22T16:42:27Z
Wikiricky
1
/* St.George */ added citations
wikitext
text/x-wiki
This is a list of populated villages, towns, settlements, and streets in Grenada. Many of the village names in Grenada are based upon the names of plantations. Grenada has 7 Parishes
==[[St.George,Grenada|St.George]]==
*[[ANNANDALE,St.George,Grenada|ANNANDALE]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/100 Annandale Estate - Legacies of British Slavery - UCL]</ref>
*[[ARCHIBALD AVENUE,St.George,Grenada|ARCHIBALD AVENUE]]
*[[BACK STREET, TEMPE,St.George,Grenada|BACK STREET, TEMPE]]
*[[BAIN'S ALLEY,St.George,Grenada|BAIN'S ALLEY]]
*[[BEAULIEU,St.George,Grenada|BEAULIEU]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1320 <nowiki>Beaulieu [ Grenada | St George ] - UCL</nowiki>]</ref>
*[[BELMONT,St.George,Grenada|BELMONT]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1290</ref>
*[[BLACK FOREST, VENDOME,St.George,Grenada|BLACK FOREST, VENDOME]]
*[[BLACKBURN ALLEY,St.George,Grenada|BLACKBURN ALLEY]]
*[[BOCA,St.George,Grenada|BOCA]]
*[[BON ACCORD ESTATE,St.George,Grenada|BON ACCORD ESTATE]]
*[[BOTANICAL GARDENS,St.George,Grenada|BOTANICAL GARDENS]]
*[[BRIGG'S ALLEY,St.George,Grenada|BRIGG'S ALLEY]]
*[[BRIZAN,St.George,Grenada|BRIZAN]]
*[[CAFE,St.George,Grenada|CAFE]]
*[[CALABASH ALLEY,St.George,Grenada|CALABASH ALLEY]]
*[[CALIVIGNY,St.George,Grenada|CALIVIGNY]]
*[[CALLISTE,St.George,Grenada|CALLISTE]]
*[[CARENAGE,St.George,Grenada|CARENAGE]]
*[[CARRIERE,St.George,Grenada|CARRIERE]]
*[[CEMETERY HILL,St.George,Grenada|CEMETERY HILL]]
*[[CHANTILLY, TEMPE,St.George,Grenada|CHANTILLY, TEMPE]]
*[[CHEMIN RIVER,St.George,Grenada|CHEMIN RIVER]]
*[[CHERRY HILL,St.George,Grenada|CHERRY HILL]]
*[[CHURCH STREET,St.George,Grenada|CHURCH STREET]]
*[[CIRCULAR DRIVE, FREQUENTE,St.George,Grenada|CIRCULAR DRIVE, FREQUENTE]]
*[[CLARKES COURT BAY,St.George,Grenada|CLARKES COURT BAY,]]
*[[COCOA ROAD, MARIAN,St.George,Grenada|COCOA ROAD, MARIAN]]
*[[CONFER,St.George,Grenada|CONFER]]
*[[CONSTANTINE,St.George,Grenada|CONSTANTINE]]
*[[CORBEAU TOWN,St.George,Grenada|CORBEAU TOWN]]
*[[COX ALLEY,St.George,Grenada|COX ALLEY]]
*[[CREIGHTON,St.George,Grenada|CREIGHTON]]
*[[CROSS STREET,St.George,Grenada|CROSS STREET]]
*[[D'ARBEAU,St.George,Grenada|D'ARBEAU]]
*[[DE FAUX,St.George,Grenada|DE FAUX]]
*[[DEPONTHIEU STREET,St.George,Grenada|DEPONTHIEU STREET]]
*[[DE VILLA, BLACKBURN ALLEY,St.George,Grenada|DE VILLA, BLACKBURN ALLEY]]
*[[DIXIE, SPRINGS,St.George,Grenada|DIXIE, SPRINGS]]
*[[DUSTY HIGHWAY, GRAND ANSE,St.George,Grenada|DUSTY HIGHWAY, GRAND ANSE]]
*[[EDGEMOND POINT,St.George,Grenada|EDGEMOND POINT]]
*[[FALL EDGE, GRAND ANSE,St.George,Grenada|FALL EDGE, GRAND ANSE]]
*[[FENTON VILLAGE,St.George,Grenada|FENTON VILLAGE]]
*[[FONTENOY,St.George,Grenada|FONTENOY]]
*[[FORT JUEDY,St.George,Grenada|FORT JUEDY]]
*[[FREQUENTE,St.George,Grenada|FREQUENTE]]
*[[GOLF COURSE,St.George,Grenada|GOLF COURSE]]
*[[GOOD HOPE,St.George,Grenada|GOOD HOPE]]
*[[GORE STREET,St.George,Grenada|GORE STREET]]
*[[GRAND ANSE,St.George,Grenada|GRAND ANSE]]
*[[GRAND ANSE ESTATE, LANCE AUX,St.George,Grenada|GRAND ANSE ESTATE, LANCE AUX]]
*[[GRAND ANSE HOUSING SCHEME,St.George,Grenada|GRAND ANSE HOUSING SCHEME]]
*[[GRAND ANSE VALLEY,St.George,Grenada|GRAND ANSE VALLEY]]
*[[GRAND ETANG ROAD,St.George,Grenada|GRAND ETANG ROAD]]
*[[GRAND MAL,St.George,Grenada|GRAND MAL]]
*[[GRANTON,St.George,Grenada|GRANTON]]
*[[GREEN STREET,St.George,Grenada|GREEN STREET]]
*[[GRENVILLE STREET,St.George,Grenada|GRENVILLE STREET]]
*[[GRENVILLE VALE,St.George,Grenada|GRENVILLE VALE]]
*[[GREY STONE, BELMONT,St.George,Grenada|GREY STONE, BELMONT]]
*[[H.A BLAIZE STREET,St.George,Grenada|H.A BLAIZE STREET]]
*[[HADDON SMITH STREET,St.George,Grenada|HADDON SMITH STREET]]
*[[HALIFAX STREET,St.George,Grenada|HALIFAX STREET]]
*[[HAPPY HILL,St.George,Grenada|HAPPY HILL]]
*[[HILL TOP, CALIVIGNY,St.George,Grenada|HILL TOP, CALIVIGNY]]
*[[HILLS ROAD,St.George,Grenada|HILLS ROAD]]
*[[HILLSBOROUGH STREET,St.George,Grenada|HILLSBOROUGH STREET]]
*[[HOPE VALE,St.George,Grenada|HOPE VALE]]
*[[INDEPENDENCE AVENUE,St.George,Grenada|INDEPENDENCE AVENUE]]
*[[JEAN ANGLIAS,St.George,Grenada|JEAN ANGLIAS]]
*[[JUMBIE,St.George,Grenada|JUMBIE]]
*[[KAFE BEAU HILL,St.George,Grenada|KAFE BEAU HILL]]
*[[LA BORIE,St.George,Grenada|LA BORIE]]
*[[LA MODE,St.George,Grenada|LA MODE]]
*[[LAGOON ROAD,St.George,Grenada|LAGOON ROAD]]
*[[LANCE AUX EPINES,St.George,Grenada|LANCE AUX EPINES]]
*[[LONG GUTTER,St.George,Grenada|LONG GUTTER]]
*[[LOWER MORNE JALOUX,St.George,Grenada|LOWER MORNE JALOUX]]
*[[LOWER WOBURN,St.George,Grenada|LOWER WOBURN]]
*[[LOWTHER'S LANE,St.George,Grenada|LOWTHER'S LANE]]
*[[LUCAS STREET,St.George,Grenada|LUCAS STREET]]
*[[MALONEY STREET,St.George,Grenada|MALONEY STREET]]
*[[MANGO, NEW HAMPSHIRE,St.George,Grenada|MANGO, NEW HAMPSHIRE]]
*[[MARIAN,St.George,Grenada|MARIAN]]
*[[MARKET HILL,St.George,Grenada|MARKET HILL]]
*[[MARRAST HILL,St.George,Grenada|MARRAST HILL]]
*[[MAURICE BISHOP HIGHWAY, GRAND ANSE,St.George,Grenada|MAURICE BISHOP HIGHWAY, GRAND ANSE]]
*[[MAURICE BISHOP HWY, GRAND,St.George,Grenada|MAURICE BISHOP HWY, GRAND]]
*[[MELVILLE STREET,St.George,Grenada|MELVILLE STREET]]
*[[MOLINIERE,St.George,Grenada|MOLINIERE]]
*[[MONT TOUTE,St.George,Grenada|MONT TOUTE]]
*[[MORNE JALOUX,St.George,Grenada|MORNE JALOUX]]
*[[MORNE ROUGE,St.George,Grenada|MORNE ROUGE]]
*[[MORTLEY ROAD,St.George,Grenada|MORTLEY ROAD]]
*[[MT. AIRY,St.George,Grenada|MT. AIRY]]
*[[MT. GAY,St.George,Grenada|MT. GAY]]
*[[MT. HARTMAN,St.George,Grenada|MT. HARTMAN]]
*[[MT. MORITZ,St.George,Grenada|MT. MORITZ]]
*[[MT. PARNASSUS,St.George,Grenada|MT. PARNASSUS]]
*[[MT. RUSH,St.George,Grenada|MT. RUSH]]
*[[MT. WHELDALE,St.George,Grenada|MT. WHELDALE]]
*[[OBSERVATORY ROAD,St.George,Grenada|OBSERVATORY ROAD]]
*[[OLD FORT,St.George,Grenada|OLD FORT]]
*[[PADDOCK,St.George,Grenada|PADDOCK]]
*[[PARADE,St.George,Grenada|PARADE]]
*[[PARK LANE,St.George,Grenada|PARK LANE]]
*[[PERSEVERANCE,St.George,Grenada|PERSEVERANCE]]
*[[PETERSFIELD,St.George,Grenada|PETERSFIELD]]
*[[POINT SALINES,St.George,Grenada|POINT SALINES]]
*[[QUEEN'S PARK,St.George,Grenada|QUEEN'S PARK]]
*[[RADIX, MT. PARNASSUS,St.George,Grenada|RADIX, MT. PARNASSUS]]
*[[RAVINE, MT. GAY,St.George,Grenada|RAVINE, MT. GAY]]
*[[RICHMOND HILL,St.George,Grenada|RICHMOND HILL]]
*[[RIVER ROAD,St.George,Grenada|RIVER ROAD]]
*[[ROEBUCK,St.George,Grenada|ROEBUCK]]
*[[SANS SOUCI,St.George,Grenada|SANS SOUCI]]
*[[SCOTT STREET,St.George,Grenada|SCOTT STREET]]
*[[SHENDA,St.George,Grenada|SHENDA]]
*[[SIMMONS STREET,St.George,Grenada|SIMMONS STREET]]
*[[SNUG CORNER,St.George,Grenada|SNUG CORNER]]
*[[SPRINGS,St.George,Grenada|SPRINGS]]
*[[ST. GEORGE ESTATE,St.George,Grenada|ST. GEORGE ESTATE]]
*[[ST. JOHN STREET,St.George,Grenada|ST. JOHN STREET]]
*[[ST. JUILLE STREET,St.George,Grenada|ST. JUILLE STREET]]
*[[ST.PAUL'S,St.George,Grenada|ST.PAUL'S]]
*[[SUNSET VALLEY, POINT SALINES,St.George,Grenada|SUNSET VALLEY, POINT SALINES]]
*[[TANTEEN, TANTEEN TERRACE,St.George,Grenada|TANTEEN, TANTEEN TERRACE]]
*[[TEMPE,St.George,Grenada|TEMPE]]
*[[TETMUND,St.George,Grenada|TETMUND]]
*[[THE BOCAS,St.George,Grenada|THE BOCAS]]
*[[THE GREENS,St.George,Grenada|THE GREENS]]
*[[THE LIMES,St.George,Grenada|THE LIMES]]
*[[THE STONES, GRAND ANSE,St.George,Grenada|THE STONES, GRAND ANSE]]
*[[THE STONES, NEW HAMPSHIRE,St.George,Grenada|THE STONES, NEW HAMPSHIRE]]
*[[THE VILLA, LONG GUTTER,St.George,Grenada|THE VILLA, LONG GUTTER]]
*[[TRANQUIL LANE,St.George,Grenada|TRANQUIL LANE]]
*[[TRUE BLUE,St.George,Grenada|TRUE BLUE]]
*[[TRYNE ALLEY,St.George,Grenada|TRYNE ALLEY]]
*[[TURTLE BACK DRIVE, LANCE AUX,St.George,Grenada|TURTLE BACK DRIVE, LANCE AUX]]
*[[TYRREL STREET,St.George,Grenada|TYRREL STREET]]
*[[UPPER MORNE JALOUX,St.George,Grenada|UPPER MORNE JALOUX]]
*[[UPPER WOBURN,St.George,Grenada|UPPER WOBURN]]
*[[VENDOME,St.George,Grenada|VENDOME]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1287</ref>
*[[WELCOME,St.George,Grenada|WELCOME]]
*[[WHITE GUN,St.George,Grenada|WHITE GUN]]
*[[WHITE HALL, PARK LANE,St.George,Grenada|WHITE HALL, PARK LANE]]
*[[WILLIAMSON ROAD,St.George,Grenada|WILLIAMSON ROAD]]
*[[WILLIS,St.George,Grenada|WILLIS]]
*[[WOODLANDS,St.George,Grenada|WOODLANDS]]
*[[WOOLWICH ROAD,St.George,Grenada|WOOLWICH ROAD]]
*[[YOUNG STREET,St.George,Grenada|YOUNG STREET]]
==[[St.John,Grenada|St.John]]==
*[[BACK STREET,St.John,Grenada|BACK STREET]]
*[[BELVIDERE,St.John,Grenada|BELVIDERE]]
*[[BLACK BAY,St.John,Grenada|BLACK BAY]]
*[[BOYKES LANE, GOUYAVE,St.John,Grenada|BOYKES LANE, GOUYAVE]]
*[[BROOKLYN,St.John,Grenada|BROOKLYN]]
*[[BROTHERS ESTATE,St.John,Grenada|BROTHERS ESTATE]]
*[[CENTRAL DEPRADINE STREET,St.John,Grenada|CENTRAL DEPRADINE STREET]]
*[[CLOZIER,St.John,Grenada|CLOZIER]]
*[[CONCORD,St.John,Grenada|CONCORD]]
*[[CORNETS WALK, GOUYAVE,St.John,Grenada|CORNETS WALK, GOUYAVE]]
*[[COTTON BAILY,St.John,Grenada|COTTON BAILY]]
*[[D LANCE, UPPER DEPRADINE,St.John,Grenada|D LANCE, UPPER DEPRADINE]]
*[[DOCTOR BELLE,St.John,Grenada|DOCTOR BELLE]]
*[[DOUGALDSTON,St.John,Grenada|DOUGALDSTON]]
*[[EDWARD STREET, GOUYAVE,St.John,Grenada|EDWARD STREET, GOUYAVE]]
*[[FERGUSON'S LANE,St.John,Grenada|FERGUSON'S LANE]]
*[[FLORIDA,St.John,Grenada|FLORIDA]]
*[[GOUYAVE ESTATE,St.John,Grenada|GOUYAVE ESTATE]]
*[[GRAND ROY,St.John,Grenada|GRAND ROY]]
*[[HILLSVIEW, GOUYAVE,St.John,Grenada|HILLSVIEW, GOUYAVE]]
*[[LANGTON ROAD, GOUYAVE,St.John,Grenada|LANGTON ROAD, GOUYAVE]]
*[[LOWER DEPRADINE STREET,St.John,Grenada|LOWER DEPRADINE STREET]]
*[[MARIGOT,St.John,Grenada|MARIGOT]]
*[[MITCHELL'S LANE,St.John,Grenada|MITCHELL'S LANE]]
*[[MONGO ROAD, GOUYAVE ESTATE,St.John,Grenada|MONGO ROAD, GOUYAVE ESTATE]]
*[[MT. GRANBY,St.John,Grenada|MT. GRANBY]]
*[[MT. NESBIT,St.John,Grenada|MT. NESBIT]]
*[[NEW STREET, EDWARD STREET,St.John,Grenada|NEW STREET, EDWARD STREET]]
*[[NEW STREET, GOUYAVE,St.John,Grenada|NEW STREET, GOUYAVE]]
*[[PALMISTE,St.John,Grenada|PALMISTE]]
*[[QUEEN STREET, ST. JOHN'S,St.John,Grenada|QUEEN STREET, ST. JOHN'S]]
*[[RENNIE,St.John,Grenada|RENNIE]]
*[[RIVER LANE, GOUYAVE ESTATE,St.John,Grenada|RIVER LANE, GOUYAVE ESTATE]]
*[[RIVER LANE, GOUYAVE,St.John,Grenada|RIVER LANE, GOUYAVE]]
*[[ROSEMOUNT,St.John,Grenada|ROSEMOUNT]]
*[[SCHOOL LANE, GOUYAVE,St.John,Grenada|SCHOOL LANE, GOUYAVE]]
*[[ST BENOIT STREET, GOUYAVE,St.John,Grenada|ST BENOIT STREET, GOUYAVE]]
*[[ST DOMINIC STREET, GOUYAVE,St.John,Grenada|ST DOMINIC STREET, GOUYAVE]]
*[[ST DOMINIC, GOUYAVE,St.John,Grenada|ST DOMINIC, GOUYAVE]]
*[[ST FRANCIS, GOUYAVE,St.John,Grenada|ST FRANCIS, GOUYAVE]]
*[[ST PETERS STREET, GOUYAVE,St.John,Grenada|ST PETERS STREET, GOUYAVE]]
*[[ST PETERS, GOUYAVE,St.John,Grenada|ST PETERS, GOUYAVE]]
*[[ST. FRANCIS STREET,St.John,Grenada|ST. FRANCIS STREET]]
*[[ST. PETER STREET,St.John,Grenada|ST. PETER STREET]]
*[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]]
*[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]]
*[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]]
*[[UPPER DEPRADINE STREET,St.John,Grenada|UPPER DEPRADINE STREET]]
*[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]]
*[[VICTORIA ROAD, GOUYAVE,St.John,Grenada|VICTORIA ROAD, GOUYAVE]]
*[[VICTORIA STREET,St.John,Grenada|VICTORIA STREET]]
*[[WATERLOO,St.John,Grenada|WATERLOO]]
*[[WOODFORD,St.John,Grenada|WOODFORD]]
==[[St.David,Grenada|St.David]]==
*[[APRES TOUTE,St.David,Grenada|APRES TOUTE]]
*[[BAILLES BACOLET,St.David,Grenada|BAILLES BACOLET]]
*[[BEATON,St.David,Grenada|BEATON]]
*[[BELLE ISLE,St.David,Grenada|BELLE ISLE]]
*[[BELLE VUE,St.David,Grenada|BELLE VUE]]
*[[BOCAGE,St.David,Grenada|BOCAGE]]
*[[CHAMPFLEURS,St.David,Grenada|CHAMPFLEURS]]
*[[COALS GAPS,St.David,Grenada|COALS GAPS]]
*[[CONTENT,St.David,Grenada|CONTENT]]
*[[CORINTH,St.David,Grenada|CORINTH]]
*[[DUDMAR,St.David,Grenada|DUDMAR]]
*[[EPPIN FOREST,St.David,Grenada|EPPIN FOREST]]
*[[HARMONY HALL,St.David,Grenada|HARMONY HALL]]
*[[LA CALOHME,St.David,Grenada|LA CALOHME]]
*[[LA FEMME,St.David,Grenada|LA FEMME]]
*[[LA FLORETTA,St.David,Grenada|LA FLORETTA]]
*[[LA PASTORA,St.David,Grenada|LA PASTORA]]
*[[LA SAGESSE,St.David,Grenada|LA SAGESSE]]
*[[LA TANTE,St.David,Grenada|LA TANTE]]
*[[MARLMOUNT,St.David,Grenada|MARLMOUNT]]
*[[MARDIGRAS,St.David,Grenada|MARDIGRAS]]
*[[MARLMOUNT, GLEBE LAND,St.David,Grenada|MARLMOUNT, GLEBE LAND]]
*[[MAULTY,St.David,Grenada|MAULTY]]
*[[MAYANN, CONSTANTINE,St.David,Grenada|MAYANN, CONSTANTINE]]
*[[MINORCA,St.David,Grenada|MINORCA]]
*[[MORNE DELICE,St.David,Grenada|MORNE DELICE]]
*[[MON REPOS,St.David,Grenada|MON REPOS]]
*[[MT. AGNES,St.David,Grenada|MT. AGNES]]
*[[MT. DISIRE,St.David,Grenada|MT. DISIRE]]
*[[MT. ROSE,St.David,Grenada|MT. ROSE]]
*[[MYANN, CONSTANTINE,St.David,Grenada|MYANN, CONSTANTINE]]
*[[NEW WESTERHALL,St.David,Grenada|NEW WESTERHALL]]
*[[OLD WESTERHALL,St.David,Grenada|OLD WESTERHALL]]
*[[PERDMONTEMPS,St.David,Grenada|PERDMONTEMPS]]
*[[PETITE BACAYE, NEW,St.David,Grenada|PETITE BACAYE, NEW]]
*[[PETITE ESPERANCE,St.David,Grenada|PETITE ESPERANCE]]
*[[PETITE ETANG,St.David,Grenada|PETITE ETANG]]
*[[POMME ROSE,St.David,Grenada|POMME ROSE]]
*[[RED GATE,St.David,Grenada|RED GATE]]
*[[REDMUD,St.David,Grenada|REDMUD]]
*[[REQUIN,St.David,Grenada|REQUIN]]
*[[SLINGER STREET,St.David,Grenada|SLINGER STREET]]
*[[SYRACUSE,St.David,Grenada|SYRACUSE]]
*[[THEBAIDE,St.David,Grenada|THEBAIDE]]
*[[TABOR,St.David,Grenada|TABOR]]
*[[UPPER LAURA,St.David,Grenada|UPPER LAURA]]
*[[VINCENNES,St.David,Grenada|VINCENNES]]
*[[WESTERHALL POINT,St.David,Grenada|WESTERHALL POINT]]
*[[WINDSOR,St.David,Grenada|WINDSOR]]
*[[WINDSOR FOREST,St.David,Grenada|WINDSOR FOREST]]
==[[Carriacou and Petite Martinique,Grenada|Carriacou and Petite Martinique]]==
*[[BAYALEAU,Carriacou,Grenada|BAYALEAU]]
*[[BEAUSEJOUR,Carriacou,Grenada|BEAUSEJOUR]]
*[[BELAIR,Carriacou,Grenada|BELAIR]]
*[[BELLE VUE,Carriacou,Grenada|BELLE VUE]]
*[[BELMONT,Carriacou,Grenada|BELMONT]]
*[[BOGLES,Carriacou,Grenada|BOGLES]]
*[[BRUNSWICK,Carriacou,Grenada|BRUNSWICK]]
*[[CHURCH STREET, HILLSBOROUGH,Carriacou,Grenada|CHURCH STREET, HILLSBOROUGH]]
*[[CRAIGSTON,Carriacou,Grenada|CRAIGSTON]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1385]</ref>
*[[CHERRY HILL,Carriacou,Grenada|CHERRY HILL]]
*[[DOVER,Carriacou,Grenada|DOVER]]
*[[DUMFRIES,Carriacou,Grenada|DUMFRIES]]
*[[GRAND BAY,Carriacou,Grenada|GRAND BAY]]
*[[HARVEY VALE,Carriacou,Grenada|HARVEY VALE]]
*[[HERMITAGE,Carriacou,Grenada|HERMITAGE]]
*[[HILLSBOROUGH,Carriacou,Grenada|HILLSBOROUGH]]
*[[L'ESTERRE,Carriacou,Grenada|L'ESTERRE]]
*[[LAURISTON,Carriacou,Grenada|LAURISTON]]
*[[LIMLAIR,Carriacou,Grenada|LIMLAIR]]
*[[MELDRUM,Carriacou,Grenada|MELDRUM]]
*[[MT. DISIRE,Carriacou,Grenada|MT. DISIRE]]
*[[MT. PLEASANT,Carriacou,Grenada|MT. PLEASANT]]
*[[MT. ST ERVANS, L'ESTERRIE,Carriacou,Grenada|MT ST ERVANS, L'ESTERRIE]]
*[[MT. ROYAL,Carriacou,Grenada|MT. ROYAL]]
*[[PROSPECT HALL,Carriacou,Grenada|PROSPECT HALL]]
*[[SIX ROADS,Carriacou,Grenada|SIX ROADS]]
*[[TOP HILL,Carriacou,Grenada|TOP HILL]]
*[[WINDWARD,Carriacou,Grenada|WINDWARD]]
*[[PETITE MARTINIQUE,PETIT MARTINIQUE,Grenada|PETITE MARTINIQUE]]
==[[St.Andrew,Grenada|St.Andrew]]==
*[[MT. FANN,St. Andrew,Grenada|MT. FANN]]
*[[ADELPHI,St.Andrew,Grenada|ADELPHI]]
*[[AHOMA,St.Andrew,Grenada|AHOMA]]
*[[BALTHAZAR,St.Andrew,Grenada|BALTHAZAR]]
*[[BAYROAD,St.Andrew,Grenada|BAYROAD]]
*[[BLAIZE,St.Andrew,Grenada|BLAIZE]]
*[[BAMBOO,St.Andrew,Grenada|BAMBOO]]
*[[BATTLE HILL,St.Andrew,Grenada|BATTLE HILL]]
*[[BEAUREGARD,St.Andrew,Grenada|BEAUREGARD]]
*[[BELLE VUE,St.Andrew,Grenada|BELLE VUE]]
*[[BELVEDERE,St.Andrew,Grenada|BELVEDERE]]
*[[BEN JONES STREET,St.Andrew,Grenada|BEN JONES STREET]]
*[[BIRCHGROVE,St.Andrew,Grenada|BIRCHGROVE]]
*[[BYELANDS,St.Andrew,Grenada|BYELANDS]]
*[[CAFE,St.Andrew,Grenada|CAFE]]
*[[CANAL ROAD,St.Andrew,Grenada|CANAL ROAD]]
*[[CARRIERE,St.Andrew,Grenada|CARRIERE]]
*[[CARRUTH,St.Andrew,Grenada|CARRUTH]]
*[[CASTIGNE,St.Andrew,Grenada|CASTIGNE]]
*[[CHAPEL ROAD,St.Andrew,Grenada|CHAPEL ROAD]]
*[[COCOA ROAD,St.Andrew,Grenada|COCOA ROAD]]
*[[CODRONA,St.Andrew,Grenada|CODRONA]]
*[[CONFERENCE,St.Andrew,Grenada|CONFERENCE]]
*[[COOKHILL ROAD,St.Andrew,Grenada|COOKHILL ROAD]]
*[[CROCHU,St.Andrew,Grenada|CROCHU]]
*[[DE BLANDEAU,St.Andrew,Grenada|DE BLANDEAU]]
*[[DUNFERMLINE,St.Andrew,Grenada|DUNFERMLINE]]
*[[DURRANT ROAD,St.Andrew,Grenada|DURRANT ROAD]]
*[[FORD HILL ROAD,St.Andrew,Grenada|FORD HILL ROAD]]
*[[FELIX PARK,St.Andrew,Grenada|FELIX PARK]]
*[[GRANLETTE,St.Andrew,Grenada|GRANLETTE]]
*[[GEORGE V. STREET,St.Andrew,Grenada|GEORGE V. STREET]]
*[[GLADSTONE ROAD,St.Andrew,Grenada|GLADSTONE ROAD]]
*[[GOUYAVE,St.Andrew,Grenada|GOUYAVE]]
*[[GRAND BACOLET,St.Andrew,Grenada|GRAND BACOLET]]
*[[GRAND BRAS,St.Andrew,Grenada|GRAND BRAS]]
*[[GRIFFIN LANE,St.Andrew,Grenada|GRIFFIN LANE]]
*[[GUPO,St.Andrew,Grenada|GUPO]]
*[[HARFORD VILLAGE,St.Andrew,Grenada|HARFORD VILLAGE]]
*[[HERMON,St.Andrew,Grenada|HERMON]]
*[[HILLS ROAD, LOWER,St.Andrew,Grenada|HILLS ROAD]]
*[[HOPE,St.Andrew,Grenada|HOPE]]
*[[HOPE CITY,St.Andrew,Grenada|HOPE CITY]]
*[[LA DIGUE,St.Andrew,Grenada|LA DIGUE]]
*[[LA FILLETTE,St.Andrew,Grenada|LA FILLETTE]]
*[[LA POTERIE,St.Andrew,Grenada|LA POTERIE]]
*[[L'ESTERRIE,St.Andrew,Grenada|L'ESTERRIE]]
*[[LOWER CAPITOL,St.Andrew,Grenada|LOWER CAPITOL]]
*[[LOWER HARFORD VILLAGE,St.Andrew,Grenada|LOWER HARFORD VILLAGE]]
*[[MAHOUT,St.Andrew,Grenada|MAHOUT]]
*[[MAMMA CANNES,St.Andrew,Grenada|MAMMA CANNES]]
*[[MARQUIS,St.Andrew,Grenada|MARQUIS]]
*[[MC NELLIE ALLEY, SAUTEURS,St.Andrew,Grenada|MC NELLIE ALLEY, SAUTEURS]]
*[[MC NEILLY, SAUTEURS,St.Andrew,Grenada|MC NEILLY, SAUTEURS]]
*[[MEADOW,St.Andrew,Grenada|MEADOW]]
*[[MELDRUM,St.Andrew,Grenada|MELDRUM]]
*[[MIRABEAU,St.Andrew,Grenada|MIRABEAU]]
*[[MORNE LOUNGE,St.Andrew,Grenada|MORNE LOUNGE]]
*[[MOYAH,St.Andrew,Grenada|MOYAH]]
*[[MT. ST ERVANS, LA DIGUE,St.Andrew,Grenada|MT ST ERVANS, LA DIGUE]]
*[[MT. CARMEL,St.Andrew,Grenada|MT. CARMEL]]
*[[MT. HORNE,St.Andrew,Grenada|MT. HORNE]]
*[[MT. PLEASANT,St.Andrew,Grenada|MT. PLEASANT]]
*[[MT. SEALEY,St.Andrew,Grenada|MT. SEALEY]]
*[[MUNICH,St.Andrew,Grenada|MUNICH]]
*[[NEW HAMPSHIRE,St.Andrew,Grenada|NEW HAMPSHIRE]]
*[[NOELSVILLE,St.Andrew,Grenada|NOELSVILLE]]
*[[PARACLETE,St.Andrew,Grenada|PARACLETE]]
*[[PARADISE,St.Andrew,Grenada|PARADISE]]
*[[PEARLS,St.Andrew,Grenada|PEARLS]]
*[[PLATEAU,St.Andrew,Grenada|PLATEAU]]
*[[PLEASANCE,St.Andrew,Grenada|PLEASANCE]]
*[[POST ROYAL,St.Andrew,Grenada|POST ROYAL]]
*[[PROVIDENCE,St.Andrew,Grenada|PROVIDENCE]]
*[[RETREAT,St.Andrew,Grenada|RETREAT]]
*[[RICHMOND,St.Andrew,Grenada|RICHMOND]]
*[[RIVULET LANE,St.Andrew,Grenada|RIVULET LANE]]
*[[SABB,St.Andrew,Grenada|SABB]]
*[[SALISBURY ROAD,St.Andrew,Grenada|SALISBURY ROAD]]
*[[SAMUEL AVENUE, CALIVIGNY,St.Andrew,Grenada|SAMUEL AVENUE, CALIVIGNY]]
*[[SEATON BROWNE STREET,St.Andrew,Grenada|SEATON BROWNE STREET]]
*[[SEATON JAMES STREET,St.Andrew,Grenada|SEATON JAMES STREET]]
*[[SENDALL STREET,St.Andrew,Grenada|SENDALL STREET]]
*[[SIMON,St.Andrew,Grenada|SIMON]]
*[[SNELL HALL,St.Andrew,Grenada|SNELL HALL]]
*[[SOUBISE,St.Andrew,Grenada|SOUBISE]]
*[[SPRING GARDEN,St.Andrew,Grenada|SPRING GARDEN]]
*[[ST. CLOUDS,St.Andrew,Grenada|ST. CLOUDS]]
*[[ST. JAMES,St.Andrew,Grenada|ST. JAMES]]
*[[ST. JOHNS,St.Andrew,Grenada|ST. JOHNS]]
*[[TOUS CONGO,St.Andrew,Grenada|TOUS CONGO]]
*[[TELESCOPE,St.Andrew,Grenada|TELESCOPE]]
*[[TIVOLI,St.Andrew,Grenada|TIVOLI]]
*[[TUILLIERIES,St.Andrew,Grenada|TUILLIERIES]]
*[[UNION,St.Andrew,Grenada|UNION]]
*[[UPPER CAPITOL,St.Andrew,Grenada|UPPER CAPITOL]]
*[[THE VILLA,St.Andrew,Grenada|THE VILLA]]
*[[VILLAGE ROAD,St.Andrew,Grenada|VILLAGE ROAD]]
*[[VICTORIA STREET,St.Andrew,Grenada|VICTORIA STREET]]
*[[WALKER,St.Andrew,Grenada|WALKER]]
*[[WELLS ROAD,St.Andrew,Grenada|WELLS ROAD]]
==[[St.Mark,Grenada|St.Mark]]==
*[[BOCAGE,St.Mark,Grenada|BOCAGE]]
*[[BOCAGE, BONAIR,St.Mark,Grenada|BOCAGE, BONAIR]]
*[[BONAIR,St.Mark,Grenada|BONAIR]]
*[[BONIAR ROAD, BONAIR,St.Mark,Grenada|BONIAR ROAD, BONAIR]]
*[[CHARLOTTE VALE,St.Mark,Grenada|CHARLOTTE VALE]]
*[[COAST GUARD,St.Mark,Grenada|COAST GUARD]]
*[[CRUICKSHANK ROAD,St.Mark,Grenada|CRUICKSHANK ROAD]]
*[[CRUICKSHANK ROAD, VICTORIA,St.Mark,Grenada|CRUICKSHANK ROAD, VICTORIA]]
*[[DARVEY,St.Mark,Grenada|DARVEY]]
*[[DE VILLA,St.Mark,Grenada|DE VILLA]]
*[[DIAMOND ESTATE,St.Mark,Grenada|DIAMOND ESTATE]]
*[[DIAMOND STREET, VICTORIA,St.Mark,Grenada|DIAMOND STREET, VICTORIA]]
*[[DIEGO PIECE,St.Mark,Grenada|DIEGO PIECE]]
*[[DUQUESNE,St.Mark,Grenada|DUQUESNE]]
*[[FAIR FIELD ROAD, VICTORIA,St.Mark,Grenada|FAIR FIELD ROAD, VICTORIA]]
*[[GALL STREET, VICTORIA,St.Mark,Grenada|GALL STREET, VICTORIA]]
*[[GROSS POINT, GROSS POINT VILLA,St.Mark,Grenada|GROSS POINT, GROSS POINT VILLA]]
*[[INDUSTRY,St.Mark,Grenada|INDUSTRY]]
*[[LA RESOURCE,St.Mark,Grenada|LA RESOURCE]]
*[[MARAN,St.Mark,Grenada|MARAN]]
*[[MT. EDGECOMBE,St.Mark,Grenada|MT. EDGECOMBE]]
*[[MUNRO STREET, VICTORIA,St.Mark,Grenada|MUNRO STREET, VICTORIA]]
*[[NON-PARIEL,St.Mark,Grenada|NON-PARIEL]]
*[[PETIT BOCAGE,St.Mark,Grenada|PETIT BOCAGE]]
*[[QUEEN STREET, VICTORIA,St.Mark,Grenada|QUEEN STREET, VICTORIA]]
*[[RESOURCE,St.Mark,Grenada|RESOURCE]]
*[[RESOURCE, RESOURCE,St.Mark,Grenada|RESOURCE, RESOURCE]]
*[[RIVER SALLEE,St.Mark,Grenada|RIVER SALLEE]]
*[[SAMARITAN,St.Mark,Grenada|SAMARITAN]]
*[[SAMARITAN, DIEGO PIECE,St.Mark,Grenada|SAMARITAN, DIEGO PIECE]]
*[[ST DAVID STREET, VICTORIA,St.Mark,Grenada|ST DAVID STREET, VICTORIA]]
*[[ST JOHN STREET, VICTORIA,St.Mark,Grenada|ST JOHN STREET, VICTORIA]]
*[[STEWAD COTTAGE,St.Mark,Grenada|STEWAD COTTAGE]]
*[[VICTORIA,St.Mark,Grenada|VICTORIA]]
*[[WALTHAM,St.Mark,Grenada|WALTHAM]]
==[[St.Patrick,Grenada|St.Patrick]]==
*[[BATHWAY,St.Patrick,Grenada|BATHWAY]]
*[[BAY ROAD, SAUTEURS,St.Patrick,Grenada|BAY ROAD, SAUTEURS]]
*[[CEDARS,St.Patrick,Grenada|CEDARS]]
*[[CHANTIMELLE,St.Patrick,Grenada|CHANTIMELLE]]
*[[CROSS STREET, SAUTEURS,St.Patrick,Grenada|CROSS STREET, SAUTEURS]]
*[[GLEBE LAND, SAUTEURS,St.Patrick,Grenada|GLEBE LAND, SAUTEURS]]
*[[GLEBE STREET, SAUTEURS,St.Patrick,Grenada|GLEBE STREET, SAUTEURS]]
*[[HERMITAGE,St.Patrick,Grenada|HERMITAGE]]
*[[HIGH GATE, MORNE FENDUE,St.Patrick,Grenada|HIGH GATE, MORNE FENDUE]]
*[[HIGH STREET, SAUTEURS,St.Patrick,Grenada|HIGH STREET, SAUTEURS]]
*[[HILL STREET, SAUTEURS,St.Patrick,Grenada|HILL STREET, SAUTEURS]]
*[[LA FORTUNE,St.Patrick,Grenada|LA FORTUNE]]
*[[LA TASTE,St.Patrick,Grenada|LA TASTE]]
*[[LEVERA,St.Patrick,Grenada|LEVERA]]
*[[MADEYS,St.Patrick,Grenada|MADEYS]]
*[[MAHOUT, ROSE HILL,St.Patrick,Grenada|MAHOUT, ROSE HILL]]
*[[MAIN STREET, SAUTEURS,St.Patrick,Grenada|MAIN STREET, SAUTEURS]]
*[[MARLI,St.Patrick,Grenada|MARLI]]
*[[MC NEILLY ALLEY, MARLI,St.Patrick,Grenada|MC NEILLY ALLEY, MARLI]]
*[[MC NELLIE ALLEY, SAUTEURS,St.Patrick,Grenada|MC NELLIE ALLEY, SAUTEURS]]
*[[MORNE FENDUE,St.Patrick,Grenada|MORNE FENDUE]]
*[[MT. CRAVEN,St.Patrick,Grenada|MT. CRAVEN]]
*[[MT. RICH,St.Patrick,Grenada|MT. RICH]]
*[[MT. ROSE,St.Patrick,Grenada|MT. ROSE]]
*[[PEGGYS WHIM, HERMITAGE,St.Patrick,Grenada|PEGGYS WHIM, HERMITAGE]]
*[[PLAINS,St.Patrick,Grenada|PLAINS]]
*[[POINTZFIELD,St.Patrick,Grenada|POINTZFIELD]]
*[[PROSPECT,St.Patrick,Grenada|PROSPECT]]
*[[RED HEAD STREET, LA FORTUNE,St.Patrick,Grenada|RED HEAD STREET, LA FORTUNE]]
*[[RED HEAD STREET, SAUTEURS,St.Patrick,Grenada|RED HEAD STREET, SAUTEURS]]
*[[RED MUD,St.Patrick,Grenada|RED MUD]]
*[[RIVER SALLEE,St.Patrick,Grenada|RIVER SALLEE]]
*[[ROSE HILL,St.Patrick,Grenada|ROSE HILL]]
*[[SALISBURY RD, SAUTEURS,St.Patrick,Grenada|SALISBURY RD, SAUTEURS]]
*[[SALISBURY STREET, SAUTEURS,St.Patrick,Grenada|SALISBURY STREET, SAUTEURS]]
*[[SAUTEURS,St.Patrick,Grenada|SAUTEURS]]
*[[THE VILLA, SAUTEURS,St.Patrick,Grenada|THE VILLA, SAUTEURS]]
== Uncategorized==
*[[ADAM'S ALLEY,,Grenada|ADAM'S ALLEY]]
*[[AFRICA,,Grenada|AFRICA]]
*[[APSLEY HILL,,Grenada|APSLEY HILL]]
*[[BLUGGO,,Grenada|BLUGGO]]
*[[BYWAY,,Grenada|BYWAY]]
*[[CELESTE,,Grenada|CELESTE]]
*[[CENTRAL DEPRADINE, GOUYAVE,,Grenada|CENTRAL DEPRADINE, GOUYAVE]]
*[[CHADDEAU,,Grenada|CHADDEAU]]
*[[CHANCERY STREET, MUNRO,,Grenada|CHANCERY STREET, MUNRO]]
*[[CHAPEL'S LANE,,Grenada|CHAPEL'S LANE]]
*[[CHURCH HILL ROAD,,Grenada|CHURCH HILL ROAD]]
*[[COOPER'S HILL,,Grenada|COOPER'S HILL]]
*[[CORNWALL STREET, SAUTEURS,,Grenada|CORNWALL STREET, SAUTEURS]]
*[[DE SILLES,,Grenada|DE SILLES]]
*[[DEHAR, GLEBE LAND,,Grenada|DEHAR, GLEBE LAND]]
*[[DOTHAN ESTATE,,Grenada|DOTHAN ESTATE]]
*[[DURRANT ROAD,,Grenada|DURRANT ROAD]]
*[[FENCE,,Grenada|FENCE]]
*[[FERGUSONS LANE, GOUYAVE,,Grenada|FERGUSONS LANE, GOUYAVE]]
*[[FIELD STREET,,Grenada|FIELD STREET]]
*[[FOUNTAIN,,Grenada|FOUNTAIN]]
*[[GLEBE LAND, SAUTEURS,,Grenada|GLEBE LAND, SAUTEURS]]
*[[GRAVEL STREET, VENDOME,,Grenada|GRAVEL STREET, VENDOME]]
*[[GROSS POINT VILLA,,Grenada|GROSS POINT VILLA]]
*[[HENRY STREET,,Grenada|HENRY STREET]]
*[[JONES ROAD,,Grenada|JONES ROAD]]
*[[LOWER CONFERENCE,,Grenada|LOWER CONFERENCE]]
*[[LOWER DEPRADINE, GOUYAVE,,Grenada|LOWER DEPRADINE, GOUYAVE]]
*[[LOWER LAURA,,Grenada|LOWER LAURA]]
*[[LYDER,,Grenada|LYDER]]
*[[MAHOUT, SAUTEURS,,Grenada|MAHOUT, SAUTEURS]]
*[[MAIN STREET, SAUTEURS,,Grenada|MAIN STREET, SAUTEURS]]
*[[MALIGNON,,Grenada|MALIGNON]]
*[[MARINE VILLA,,Grenada|MARINE VILLA]]
*[[MAUCHETTE,,Grenada|MAUCHETTE]]
*[[MC LAINE ALLEY, SAUTEURS,,Grenada|MC LAINE ALLEY, SAUTEURS]]
*[[MELROSE,,Grenada|MELROSE]]
*[[MT. ALEXANDER,,Grenada|MT. ALEXANDER]]
*[[MT. ANON,,Grenada|MT. ANON]]
*[[MT. CUMMA,,Grenada|MT. CUMMA]]
*[[MT. FELIX,,Grenada|MT. FELIX]]
*[[MT. PLASIR,,Grenada|MT. PLASIR]]
*[[MT. REUIL,,Grenada|MT. REUIL]]
*[[MT. RODNEY,,Grenada|MT. RODNEY]]
*[[MT. WILLIAMS,,Grenada|MT. WILLIAMS]]
*[[MUNRO STREET,,Grenada|MUNRO STREET]]
*[[MUNROE STREET, VICTORIA,,Grenada|MUNROE STREET, VICTORIA]]
*[[NETTLE POINT,,Grenada|NETTLE POINT]]
*[[NEW GARDENS,,Grenada|NEW GARDENS]]
*[[OTTLEY'S LANE,,Grenada|OTTLEY'S LANE]]
*[[PARK ESTATE,,Grenada|PARK ESTATE]]
*[[PENNY RETREAT,,Grenada|PENNY RETREAT]]
*[[SAMUELS AVENUE,,Grenada|SAMUELS AVENUE]]
*[[SAUTEURS, MAHOUT,,Grenada|SAUTEURS, MAHOUT]]
*[[SCHOOL LANE,,Grenada|SCHOOL LANE]]
*[[ST. BENOIT'S STREET,,Grenada|ST. BENOIT'S STREET]]
*[[ST. CYR,,Grenada|ST. CYR]]
*[[ST. DAVID STREET,,Grenada|ST. DAVID STREET]]
*[[ST. DOMINIC'S ST.,,Grenada|ST. DOMINIC'S ST.]]
*[[TAYBAKAY,,Grenada|TAYBAKAY]]
*[[TAYLOR,,Grenada|TAYLOR]]
*[[THE SUMMIT,,Grenada|THE SUMMIT]]
*[[THE VILLA, THE ROCK,,Grenada|THE VILLA, THE ROCK]]
*[[VINEYARD,,Grenada|VINEYARD]]
52f9902986271953931bcc34bb13fe7304c9d032
180
179
2022-07-22T16:43:33Z
Wikiricky
1
added belmont St patrick
wikitext
text/x-wiki
This is a list of populated villages, towns, settlements, and streets in Grenada. Many of the village names in Grenada are based upon the names of plantations. Grenada has 7 Parishes
==[[St.George,Grenada|St.George]]==
*[[ANNANDALE,St.George,Grenada|ANNANDALE]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/100 Annandale Estate - Legacies of British Slavery - UCL]</ref>
*[[ARCHIBALD AVENUE,St.George,Grenada|ARCHIBALD AVENUE]]
*[[BACK STREET, TEMPE,St.George,Grenada|BACK STREET, TEMPE]]
*[[BAIN'S ALLEY,St.George,Grenada|BAIN'S ALLEY]]
*[[BEAULIEU,St.George,Grenada|BEAULIEU]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1320 <nowiki>Beaulieu [ Grenada | St George ] - UCL</nowiki>]</ref>
*[[BELMONT,St.George,Grenada|BELMONT]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1290</ref>
*[[BLACK FOREST, VENDOME,St.George,Grenada|BLACK FOREST, VENDOME]]
*[[BLACKBURN ALLEY,St.George,Grenada|BLACKBURN ALLEY]]
*[[BOCA,St.George,Grenada|BOCA]]
*[[BON ACCORD ESTATE,St.George,Grenada|BON ACCORD ESTATE]]
*[[BOTANICAL GARDENS,St.George,Grenada|BOTANICAL GARDENS]]
*[[BRIGG'S ALLEY,St.George,Grenada|BRIGG'S ALLEY]]
*[[BRIZAN,St.George,Grenada|BRIZAN]]
*[[CAFE,St.George,Grenada|CAFE]]
*[[CALABASH ALLEY,St.George,Grenada|CALABASH ALLEY]]
*[[CALIVIGNY,St.George,Grenada|CALIVIGNY]]
*[[CALLISTE,St.George,Grenada|CALLISTE]]
*[[CARENAGE,St.George,Grenada|CARENAGE]]
*[[CARRIERE,St.George,Grenada|CARRIERE]]
*[[CEMETERY HILL,St.George,Grenada|CEMETERY HILL]]
*[[CHANTILLY, TEMPE,St.George,Grenada|CHANTILLY, TEMPE]]
*[[CHEMIN RIVER,St.George,Grenada|CHEMIN RIVER]]
*[[CHERRY HILL,St.George,Grenada|CHERRY HILL]]
*[[CHURCH STREET,St.George,Grenada|CHURCH STREET]]
*[[CIRCULAR DRIVE, FREQUENTE,St.George,Grenada|CIRCULAR DRIVE, FREQUENTE]]
*[[CLARKES COURT BAY,St.George,Grenada|CLARKES COURT BAY,]]
*[[COCOA ROAD, MARIAN,St.George,Grenada|COCOA ROAD, MARIAN]]
*[[CONFER,St.George,Grenada|CONFER]]
*[[CONSTANTINE,St.George,Grenada|CONSTANTINE]]
*[[CORBEAU TOWN,St.George,Grenada|CORBEAU TOWN]]
*[[COX ALLEY,St.George,Grenada|COX ALLEY]]
*[[CREIGHTON,St.George,Grenada|CREIGHTON]]
*[[CROSS STREET,St.George,Grenada|CROSS STREET]]
*[[D'ARBEAU,St.George,Grenada|D'ARBEAU]]
*[[DE FAUX,St.George,Grenada|DE FAUX]]
*[[DEPONTHIEU STREET,St.George,Grenada|DEPONTHIEU STREET]]
*[[DE VILLA, BLACKBURN ALLEY,St.George,Grenada|DE VILLA, BLACKBURN ALLEY]]
*[[DIXIE, SPRINGS,St.George,Grenada|DIXIE, SPRINGS]]
*[[DUSTY HIGHWAY, GRAND ANSE,St.George,Grenada|DUSTY HIGHWAY, GRAND ANSE]]
*[[EDGEMOND POINT,St.George,Grenada|EDGEMOND POINT]]
*[[FALL EDGE, GRAND ANSE,St.George,Grenada|FALL EDGE, GRAND ANSE]]
*[[FENTON VILLAGE,St.George,Grenada|FENTON VILLAGE]]
*[[FONTENOY,St.George,Grenada|FONTENOY]]
*[[FORT JUEDY,St.George,Grenada|FORT JUEDY]]
*[[FREQUENTE,St.George,Grenada|FREQUENTE]]
*[[GOLF COURSE,St.George,Grenada|GOLF COURSE]]
*[[GOOD HOPE,St.George,Grenada|GOOD HOPE]]
*[[GORE STREET,St.George,Grenada|GORE STREET]]
*[[GRAND ANSE,St.George,Grenada|GRAND ANSE]]
*[[GRAND ANSE ESTATE, LANCE AUX,St.George,Grenada|GRAND ANSE ESTATE, LANCE AUX]]
*[[GRAND ANSE HOUSING SCHEME,St.George,Grenada|GRAND ANSE HOUSING SCHEME]]
*[[GRAND ANSE VALLEY,St.George,Grenada|GRAND ANSE VALLEY]]
*[[GRAND ETANG ROAD,St.George,Grenada|GRAND ETANG ROAD]]
*[[GRAND MAL,St.George,Grenada|GRAND MAL]]
*[[GRANTON,St.George,Grenada|GRANTON]]
*[[GREEN STREET,St.George,Grenada|GREEN STREET]]
*[[GRENVILLE STREET,St.George,Grenada|GRENVILLE STREET]]
*[[GRENVILLE VALE,St.George,Grenada|GRENVILLE VALE]]
*[[GREY STONE, BELMONT,St.George,Grenada|GREY STONE, BELMONT]]
*[[H.A BLAIZE STREET,St.George,Grenada|H.A BLAIZE STREET]]
*[[HADDON SMITH STREET,St.George,Grenada|HADDON SMITH STREET]]
*[[HALIFAX STREET,St.George,Grenada|HALIFAX STREET]]
*[[HAPPY HILL,St.George,Grenada|HAPPY HILL]]
*[[HILL TOP, CALIVIGNY,St.George,Grenada|HILL TOP, CALIVIGNY]]
*[[HILLS ROAD,St.George,Grenada|HILLS ROAD]]
*[[HILLSBOROUGH STREET,St.George,Grenada|HILLSBOROUGH STREET]]
*[[HOPE VALE,St.George,Grenada|HOPE VALE]]
*[[INDEPENDENCE AVENUE,St.George,Grenada|INDEPENDENCE AVENUE]]
*[[JEAN ANGLIAS,St.George,Grenada|JEAN ANGLIAS]]
*[[JUMBIE,St.George,Grenada|JUMBIE]]
*[[KAFE BEAU HILL,St.George,Grenada|KAFE BEAU HILL]]
*[[LA BORIE,St.George,Grenada|LA BORIE]]
*[[LA MODE,St.George,Grenada|LA MODE]]
*[[LAGOON ROAD,St.George,Grenada|LAGOON ROAD]]
*[[LANCE AUX EPINES,St.George,Grenada|LANCE AUX EPINES]]
*[[LONG GUTTER,St.George,Grenada|LONG GUTTER]]
*[[LOWER MORNE JALOUX,St.George,Grenada|LOWER MORNE JALOUX]]
*[[LOWER WOBURN,St.George,Grenada|LOWER WOBURN]]
*[[LOWTHER'S LANE,St.George,Grenada|LOWTHER'S LANE]]
*[[LUCAS STREET,St.George,Grenada|LUCAS STREET]]
*[[MALONEY STREET,St.George,Grenada|MALONEY STREET]]
*[[MANGO, NEW HAMPSHIRE,St.George,Grenada|MANGO, NEW HAMPSHIRE]]
*[[MARIAN,St.George,Grenada|MARIAN]]
*[[MARKET HILL,St.George,Grenada|MARKET HILL]]
*[[MARRAST HILL,St.George,Grenada|MARRAST HILL]]
*[[MAURICE BISHOP HIGHWAY, GRAND ANSE,St.George,Grenada|MAURICE BISHOP HIGHWAY, GRAND ANSE]]
*[[MAURICE BISHOP HWY, GRAND,St.George,Grenada|MAURICE BISHOP HWY, GRAND]]
*[[MELVILLE STREET,St.George,Grenada|MELVILLE STREET]]
*[[MOLINIERE,St.George,Grenada|MOLINIERE]]
*[[MONT TOUTE,St.George,Grenada|MONT TOUTE]]
*[[MORNE JALOUX,St.George,Grenada|MORNE JALOUX]]
*[[MORNE ROUGE,St.George,Grenada|MORNE ROUGE]]
*[[MORTLEY ROAD,St.George,Grenada|MORTLEY ROAD]]
*[[MT. AIRY,St.George,Grenada|MT. AIRY]]
*[[MT. GAY,St.George,Grenada|MT. GAY]]
*[[MT. HARTMAN,St.George,Grenada|MT. HARTMAN]]
*[[MT. MORITZ,St.George,Grenada|MT. MORITZ]]
*[[MT. PARNASSUS,St.George,Grenada|MT. PARNASSUS]]
*[[MT. RUSH,St.George,Grenada|MT. RUSH]]
*[[MT. WHELDALE,St.George,Grenada|MT. WHELDALE]]
*[[OBSERVATORY ROAD,St.George,Grenada|OBSERVATORY ROAD]]
*[[OLD FORT,St.George,Grenada|OLD FORT]]
*[[PADDOCK,St.George,Grenada|PADDOCK]]
*[[PARADE,St.George,Grenada|PARADE]]
*[[PARK LANE,St.George,Grenada|PARK LANE]]
*[[PERSEVERANCE,St.George,Grenada|PERSEVERANCE]]
*[[PETERSFIELD,St.George,Grenada|PETERSFIELD]]
*[[POINT SALINES,St.George,Grenada|POINT SALINES]]
*[[QUEEN'S PARK,St.George,Grenada|QUEEN'S PARK]]
*[[RADIX, MT. PARNASSUS,St.George,Grenada|RADIX, MT. PARNASSUS]]
*[[RAVINE, MT. GAY,St.George,Grenada|RAVINE, MT. GAY]]
*[[RICHMOND HILL,St.George,Grenada|RICHMOND HILL]]
*[[RIVER ROAD,St.George,Grenada|RIVER ROAD]]
*[[ROEBUCK,St.George,Grenada|ROEBUCK]]
*[[SANS SOUCI,St.George,Grenada|SANS SOUCI]]
*[[SCOTT STREET,St.George,Grenada|SCOTT STREET]]
*[[SHENDA,St.George,Grenada|SHENDA]]
*[[SIMMONS STREET,St.George,Grenada|SIMMONS STREET]]
*[[SNUG CORNER,St.George,Grenada|SNUG CORNER]]
*[[SPRINGS,St.George,Grenada|SPRINGS]]
*[[ST. GEORGE ESTATE,St.George,Grenada|ST. GEORGE ESTATE]]
*[[ST. JOHN STREET,St.George,Grenada|ST. JOHN STREET]]
*[[ST. JUILLE STREET,St.George,Grenada|ST. JUILLE STREET]]
*[[ST.PAUL'S,St.George,Grenada|ST.PAUL'S]]
*[[SUNSET VALLEY, POINT SALINES,St.George,Grenada|SUNSET VALLEY, POINT SALINES]]
*[[TANTEEN, TANTEEN TERRACE,St.George,Grenada|TANTEEN, TANTEEN TERRACE]]
*[[TEMPE,St.George,Grenada|TEMPE]]
*[[TETMUND,St.George,Grenada|TETMUND]]
*[[THE BOCAS,St.George,Grenada|THE BOCAS]]
*[[THE GREENS,St.George,Grenada|THE GREENS]]
*[[THE LIMES,St.George,Grenada|THE LIMES]]
*[[THE STONES, GRAND ANSE,St.George,Grenada|THE STONES, GRAND ANSE]]
*[[THE STONES, NEW HAMPSHIRE,St.George,Grenada|THE STONES, NEW HAMPSHIRE]]
*[[THE VILLA, LONG GUTTER,St.George,Grenada|THE VILLA, LONG GUTTER]]
*[[TRANQUIL LANE,St.George,Grenada|TRANQUIL LANE]]
*[[TRUE BLUE,St.George,Grenada|TRUE BLUE]]
*[[TRYNE ALLEY,St.George,Grenada|TRYNE ALLEY]]
*[[TURTLE BACK DRIVE, LANCE AUX,St.George,Grenada|TURTLE BACK DRIVE, LANCE AUX]]
*[[TYRREL STREET,St.George,Grenada|TYRREL STREET]]
*[[UPPER MORNE JALOUX,St.George,Grenada|UPPER MORNE JALOUX]]
*[[UPPER WOBURN,St.George,Grenada|UPPER WOBURN]]
*[[VENDOME,St.George,Grenada|VENDOME]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1287</ref>
*[[WELCOME,St.George,Grenada|WELCOME]]
*[[WHITE GUN,St.George,Grenada|WHITE GUN]]
*[[WHITE HALL, PARK LANE,St.George,Grenada|WHITE HALL, PARK LANE]]
*[[WILLIAMSON ROAD,St.George,Grenada|WILLIAMSON ROAD]]
*[[WILLIS,St.George,Grenada|WILLIS]]
*[[WOODLANDS,St.George,Grenada|WOODLANDS]]
*[[WOOLWICH ROAD,St.George,Grenada|WOOLWICH ROAD]]
*[[YOUNG STREET,St.George,Grenada|YOUNG STREET]]
==[[St.John,Grenada|St.John]]==
*[[BACK STREET,St.John,Grenada|BACK STREET]]
*[[BELVIDERE,St.John,Grenada|BELVIDERE]]
*[[BLACK BAY,St.John,Grenada|BLACK BAY]]
*[[BOYKES LANE, GOUYAVE,St.John,Grenada|BOYKES LANE, GOUYAVE]]
*[[BROOKLYN,St.John,Grenada|BROOKLYN]]
*[[BROTHERS ESTATE,St.John,Grenada|BROTHERS ESTATE]]
*[[CENTRAL DEPRADINE STREET,St.John,Grenada|CENTRAL DEPRADINE STREET]]
*[[CLOZIER,St.John,Grenada|CLOZIER]]
*[[CONCORD,St.John,Grenada|CONCORD]]
*[[CORNETS WALK, GOUYAVE,St.John,Grenada|CORNETS WALK, GOUYAVE]]
*[[COTTON BAILY,St.John,Grenada|COTTON BAILY]]
*[[D LANCE, UPPER DEPRADINE,St.John,Grenada|D LANCE, UPPER DEPRADINE]]
*[[DOCTOR BELLE,St.John,Grenada|DOCTOR BELLE]]
*[[DOUGALDSTON,St.John,Grenada|DOUGALDSTON]]
*[[EDWARD STREET, GOUYAVE,St.John,Grenada|EDWARD STREET, GOUYAVE]]
*[[FERGUSON'S LANE,St.John,Grenada|FERGUSON'S LANE]]
*[[FLORIDA,St.John,Grenada|FLORIDA]]
*[[GOUYAVE ESTATE,St.John,Grenada|GOUYAVE ESTATE]]
*[[GRAND ROY,St.John,Grenada|GRAND ROY]]
*[[HILLSVIEW, GOUYAVE,St.John,Grenada|HILLSVIEW, GOUYAVE]]
*[[LANGTON ROAD, GOUYAVE,St.John,Grenada|LANGTON ROAD, GOUYAVE]]
*[[LOWER DEPRADINE STREET,St.John,Grenada|LOWER DEPRADINE STREET]]
*[[MARIGOT,St.John,Grenada|MARIGOT]]
*[[MITCHELL'S LANE,St.John,Grenada|MITCHELL'S LANE]]
*[[MONGO ROAD, GOUYAVE ESTATE,St.John,Grenada|MONGO ROAD, GOUYAVE ESTATE]]
*[[MT. GRANBY,St.John,Grenada|MT. GRANBY]]
*[[MT. NESBIT,St.John,Grenada|MT. NESBIT]]
*[[NEW STREET, EDWARD STREET,St.John,Grenada|NEW STREET, EDWARD STREET]]
*[[NEW STREET, GOUYAVE,St.John,Grenada|NEW STREET, GOUYAVE]]
*[[PALMISTE,St.John,Grenada|PALMISTE]]
*[[QUEEN STREET, ST. JOHN'S,St.John,Grenada|QUEEN STREET, ST. JOHN'S]]
*[[RENNIE,St.John,Grenada|RENNIE]]
*[[RIVER LANE, GOUYAVE ESTATE,St.John,Grenada|RIVER LANE, GOUYAVE ESTATE]]
*[[RIVER LANE, GOUYAVE,St.John,Grenada|RIVER LANE, GOUYAVE]]
*[[ROSEMOUNT,St.John,Grenada|ROSEMOUNT]]
*[[SCHOOL LANE, GOUYAVE,St.John,Grenada|SCHOOL LANE, GOUYAVE]]
*[[ST BENOIT STREET, GOUYAVE,St.John,Grenada|ST BENOIT STREET, GOUYAVE]]
*[[ST DOMINIC STREET, GOUYAVE,St.John,Grenada|ST DOMINIC STREET, GOUYAVE]]
*[[ST DOMINIC, GOUYAVE,St.John,Grenada|ST DOMINIC, GOUYAVE]]
*[[ST FRANCIS, GOUYAVE,St.John,Grenada|ST FRANCIS, GOUYAVE]]
*[[ST PETERS STREET, GOUYAVE,St.John,Grenada|ST PETERS STREET, GOUYAVE]]
*[[ST PETERS, GOUYAVE,St.John,Grenada|ST PETERS, GOUYAVE]]
*[[ST. FRANCIS STREET,St.John,Grenada|ST. FRANCIS STREET]]
*[[ST. PETER STREET,St.John,Grenada|ST. PETER STREET]]
*[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]]
*[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]]
*[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]]
*[[UPPER DEPRADINE STREET,St.John,Grenada|UPPER DEPRADINE STREET]]
*[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]]
*[[VICTORIA ROAD, GOUYAVE,St.John,Grenada|VICTORIA ROAD, GOUYAVE]]
*[[VICTORIA STREET,St.John,Grenada|VICTORIA STREET]]
*[[WATERLOO,St.John,Grenada|WATERLOO]]
*[[WOODFORD,St.John,Grenada|WOODFORD]]
==[[St.David,Grenada|St.David]]==
*[[APRES TOUTE,St.David,Grenada|APRES TOUTE]]
*[[BAILLES BACOLET,St.David,Grenada|BAILLES BACOLET]]
*[[BEATON,St.David,Grenada|BEATON]]
*[[BELLE ISLE,St.David,Grenada|BELLE ISLE]]
*[[BELLE VUE,St.David,Grenada|BELLE VUE]]
*[[BOCAGE,St.David,Grenada|BOCAGE]]
*[[CHAMPFLEURS,St.David,Grenada|CHAMPFLEURS]]
*[[COALS GAPS,St.David,Grenada|COALS GAPS]]
*[[CONTENT,St.David,Grenada|CONTENT]]
*[[CORINTH,St.David,Grenada|CORINTH]]
*[[DUDMAR,St.David,Grenada|DUDMAR]]
*[[EPPIN FOREST,St.David,Grenada|EPPIN FOREST]]
*[[HARMONY HALL,St.David,Grenada|HARMONY HALL]]
*[[LA CALOHME,St.David,Grenada|LA CALOHME]]
*[[LA FEMME,St.David,Grenada|LA FEMME]]
*[[LA FLORETTA,St.David,Grenada|LA FLORETTA]]
*[[LA PASTORA,St.David,Grenada|LA PASTORA]]
*[[LA SAGESSE,St.David,Grenada|LA SAGESSE]]
*[[LA TANTE,St.David,Grenada|LA TANTE]]
*[[MARLMOUNT,St.David,Grenada|MARLMOUNT]]
*[[MARDIGRAS,St.David,Grenada|MARDIGRAS]]
*[[MARLMOUNT, GLEBE LAND,St.David,Grenada|MARLMOUNT, GLEBE LAND]]
*[[MAULTY,St.David,Grenada|MAULTY]]
*[[MAYANN, CONSTANTINE,St.David,Grenada|MAYANN, CONSTANTINE]]
*[[MINORCA,St.David,Grenada|MINORCA]]
*[[MORNE DELICE,St.David,Grenada|MORNE DELICE]]
*[[MON REPOS,St.David,Grenada|MON REPOS]]
*[[MT. AGNES,St.David,Grenada|MT. AGNES]]
*[[MT. DISIRE,St.David,Grenada|MT. DISIRE]]
*[[MT. ROSE,St.David,Grenada|MT. ROSE]]
*[[MYANN, CONSTANTINE,St.David,Grenada|MYANN, CONSTANTINE]]
*[[NEW WESTERHALL,St.David,Grenada|NEW WESTERHALL]]
*[[OLD WESTERHALL,St.David,Grenada|OLD WESTERHALL]]
*[[PERDMONTEMPS,St.David,Grenada|PERDMONTEMPS]]
*[[PETITE BACAYE, NEW,St.David,Grenada|PETITE BACAYE, NEW]]
*[[PETITE ESPERANCE,St.David,Grenada|PETITE ESPERANCE]]
*[[PETITE ETANG,St.David,Grenada|PETITE ETANG]]
*[[POMME ROSE,St.David,Grenada|POMME ROSE]]
*[[RED GATE,St.David,Grenada|RED GATE]]
*[[REDMUD,St.David,Grenada|REDMUD]]
*[[REQUIN,St.David,Grenada|REQUIN]]
*[[SLINGER STREET,St.David,Grenada|SLINGER STREET]]
*[[SYRACUSE,St.David,Grenada|SYRACUSE]]
*[[THEBAIDE,St.David,Grenada|THEBAIDE]]
*[[TABOR,St.David,Grenada|TABOR]]
*[[UPPER LAURA,St.David,Grenada|UPPER LAURA]]
*[[VINCENNES,St.David,Grenada|VINCENNES]]
*[[WESTERHALL POINT,St.David,Grenada|WESTERHALL POINT]]
*[[WINDSOR,St.David,Grenada|WINDSOR]]
*[[WINDSOR FOREST,St.David,Grenada|WINDSOR FOREST]]
==[[Carriacou and Petite Martinique,Grenada|Carriacou and Petite Martinique]]==
*[[BAYALEAU,Carriacou,Grenada|BAYALEAU]]
*[[BEAUSEJOUR,Carriacou,Grenada|BEAUSEJOUR]]
*[[BELAIR,Carriacou,Grenada|BELAIR]]
*[[BELLE VUE,Carriacou,Grenada|BELLE VUE]]
*[[BELMONT,Carriacou,Grenada|BELMONT]]
*[[BOGLES,Carriacou,Grenada|BOGLES]]
*[[BRUNSWICK,Carriacou,Grenada|BRUNSWICK]]
*[[CHURCH STREET, HILLSBOROUGH,Carriacou,Grenada|CHURCH STREET, HILLSBOROUGH]]
*[[CRAIGSTON,Carriacou,Grenada|CRAIGSTON]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1385]</ref>
*[[CHERRY HILL,Carriacou,Grenada|CHERRY HILL]]
*[[DOVER,Carriacou,Grenada|DOVER]]
*[[DUMFRIES,Carriacou,Grenada|DUMFRIES]]
*[[GRAND BAY,Carriacou,Grenada|GRAND BAY]]
*[[HARVEY VALE,Carriacou,Grenada|HARVEY VALE]]
*[[HERMITAGE,Carriacou,Grenada|HERMITAGE]]
*[[HILLSBOROUGH,Carriacou,Grenada|HILLSBOROUGH]]
*[[L'ESTERRE,Carriacou,Grenada|L'ESTERRE]]
*[[LAURISTON,Carriacou,Grenada|LAURISTON]]
*[[LIMLAIR,Carriacou,Grenada|LIMLAIR]]
*[[MELDRUM,Carriacou,Grenada|MELDRUM]]
*[[MT. DISIRE,Carriacou,Grenada|MT. DISIRE]]
*[[MT. PLEASANT,Carriacou,Grenada|MT. PLEASANT]]
*[[MT. ST ERVANS, L'ESTERRIE,Carriacou,Grenada|MT ST ERVANS, L'ESTERRIE]]
*[[MT. ROYAL,Carriacou,Grenada|MT. ROYAL]]
*[[PROSPECT HALL,Carriacou,Grenada|PROSPECT HALL]]
*[[SIX ROADS,Carriacou,Grenada|SIX ROADS]]
*[[TOP HILL,Carriacou,Grenada|TOP HILL]]
*[[WINDWARD,Carriacou,Grenada|WINDWARD]]
*[[PETITE MARTINIQUE,PETIT MARTINIQUE,Grenada|PETITE MARTINIQUE]]
==[[St.Andrew,Grenada|St.Andrew]]==
*[[MT. FANN,St. Andrew,Grenada|MT. FANN]]
*[[ADELPHI,St.Andrew,Grenada|ADELPHI]]
*[[AHOMA,St.Andrew,Grenada|AHOMA]]
*[[BALTHAZAR,St.Andrew,Grenada|BALTHAZAR]]
*[[BAYROAD,St.Andrew,Grenada|BAYROAD]]
*[[BLAIZE,St.Andrew,Grenada|BLAIZE]]
*[[BAMBOO,St.Andrew,Grenada|BAMBOO]]
*[[BATTLE HILL,St.Andrew,Grenada|BATTLE HILL]]
*[[BEAUREGARD,St.Andrew,Grenada|BEAUREGARD]]
*[[BELLE VUE,St.Andrew,Grenada|BELLE VUE]]
*[[BELVEDERE,St.Andrew,Grenada|BELVEDERE]]
*[[BEN JONES STREET,St.Andrew,Grenada|BEN JONES STREET]]
*[[BIRCHGROVE,St.Andrew,Grenada|BIRCHGROVE]]
*[[BYELANDS,St.Andrew,Grenada|BYELANDS]]
*[[CAFE,St.Andrew,Grenada|CAFE]]
*[[CANAL ROAD,St.Andrew,Grenada|CANAL ROAD]]
*[[CARRIERE,St.Andrew,Grenada|CARRIERE]]
*[[CARRUTH,St.Andrew,Grenada|CARRUTH]]
*[[CASTIGNE,St.Andrew,Grenada|CASTIGNE]]
*[[CHAPEL ROAD,St.Andrew,Grenada|CHAPEL ROAD]]
*[[COCOA ROAD,St.Andrew,Grenada|COCOA ROAD]]
*[[CODRONA,St.Andrew,Grenada|CODRONA]]
*[[CONFERENCE,St.Andrew,Grenada|CONFERENCE]]
*[[COOKHILL ROAD,St.Andrew,Grenada|COOKHILL ROAD]]
*[[CROCHU,St.Andrew,Grenada|CROCHU]]
*[[DE BLANDEAU,St.Andrew,Grenada|DE BLANDEAU]]
*[[DUNFERMLINE,St.Andrew,Grenada|DUNFERMLINE]]
*[[DURRANT ROAD,St.Andrew,Grenada|DURRANT ROAD]]
*[[FORD HILL ROAD,St.Andrew,Grenada|FORD HILL ROAD]]
*[[FELIX PARK,St.Andrew,Grenada|FELIX PARK]]
*[[GRANLETTE,St.Andrew,Grenada|GRANLETTE]]
*[[GEORGE V. STREET,St.Andrew,Grenada|GEORGE V. STREET]]
*[[GLADSTONE ROAD,St.Andrew,Grenada|GLADSTONE ROAD]]
*[[GOUYAVE,St.Andrew,Grenada|GOUYAVE]]
*[[GRAND BACOLET,St.Andrew,Grenada|GRAND BACOLET]]
*[[GRAND BRAS,St.Andrew,Grenada|GRAND BRAS]]
*[[GRIFFIN LANE,St.Andrew,Grenada|GRIFFIN LANE]]
*[[GUPO,St.Andrew,Grenada|GUPO]]
*[[HARFORD VILLAGE,St.Andrew,Grenada|HARFORD VILLAGE]]
*[[HERMON,St.Andrew,Grenada|HERMON]]
*[[HILLS ROAD, LOWER,St.Andrew,Grenada|HILLS ROAD]]
*[[HOPE,St.Andrew,Grenada|HOPE]]
*[[HOPE CITY,St.Andrew,Grenada|HOPE CITY]]
*[[LA DIGUE,St.Andrew,Grenada|LA DIGUE]]
*[[LA FILLETTE,St.Andrew,Grenada|LA FILLETTE]]
*[[LA POTERIE,St.Andrew,Grenada|LA POTERIE]]
*[[L'ESTERRIE,St.Andrew,Grenada|L'ESTERRIE]]
*[[LOWER CAPITOL,St.Andrew,Grenada|LOWER CAPITOL]]
*[[LOWER HARFORD VILLAGE,St.Andrew,Grenada|LOWER HARFORD VILLAGE]]
*[[MAHOUT,St.Andrew,Grenada|MAHOUT]]
*[[MAMMA CANNES,St.Andrew,Grenada|MAMMA CANNES]]
*[[MARQUIS,St.Andrew,Grenada|MARQUIS]]
*[[MC NELLIE ALLEY, SAUTEURS,St.Andrew,Grenada|MC NELLIE ALLEY, SAUTEURS]]
*[[MC NEILLY, SAUTEURS,St.Andrew,Grenada|MC NEILLY, SAUTEURS]]
*[[MEADOW,St.Andrew,Grenada|MEADOW]]
*[[MELDRUM,St.Andrew,Grenada|MELDRUM]]
*[[MIRABEAU,St.Andrew,Grenada|MIRABEAU]]
*[[MORNE LOUNGE,St.Andrew,Grenada|MORNE LOUNGE]]
*[[MOYAH,St.Andrew,Grenada|MOYAH]]
*[[MT. ST ERVANS, LA DIGUE,St.Andrew,Grenada|MT ST ERVANS, LA DIGUE]]
*[[MT. CARMEL,St.Andrew,Grenada|MT. CARMEL]]
*[[MT. HORNE,St.Andrew,Grenada|MT. HORNE]]
*[[MT. PLEASANT,St.Andrew,Grenada|MT. PLEASANT]]
*[[MT. SEALEY,St.Andrew,Grenada|MT. SEALEY]]
*[[MUNICH,St.Andrew,Grenada|MUNICH]]
*[[NEW HAMPSHIRE,St.Andrew,Grenada|NEW HAMPSHIRE]]
*[[NOELSVILLE,St.Andrew,Grenada|NOELSVILLE]]
*[[PARACLETE,St.Andrew,Grenada|PARACLETE]]
*[[PARADISE,St.Andrew,Grenada|PARADISE]]
*[[PEARLS,St.Andrew,Grenada|PEARLS]]
*[[PLATEAU,St.Andrew,Grenada|PLATEAU]]
*[[PLEASANCE,St.Andrew,Grenada|PLEASANCE]]
*[[POST ROYAL,St.Andrew,Grenada|POST ROYAL]]
*[[PROVIDENCE,St.Andrew,Grenada|PROVIDENCE]]
*[[RETREAT,St.Andrew,Grenada|RETREAT]]
*[[RICHMOND,St.Andrew,Grenada|RICHMOND]]
*[[RIVULET LANE,St.Andrew,Grenada|RIVULET LANE]]
*[[SABB,St.Andrew,Grenada|SABB]]
*[[SALISBURY ROAD,St.Andrew,Grenada|SALISBURY ROAD]]
*[[SAMUEL AVENUE, CALIVIGNY,St.Andrew,Grenada|SAMUEL AVENUE, CALIVIGNY]]
*[[SEATON BROWNE STREET,St.Andrew,Grenada|SEATON BROWNE STREET]]
*[[SEATON JAMES STREET,St.Andrew,Grenada|SEATON JAMES STREET]]
*[[SENDALL STREET,St.Andrew,Grenada|SENDALL STREET]]
*[[SIMON,St.Andrew,Grenada|SIMON]]
*[[SNELL HALL,St.Andrew,Grenada|SNELL HALL]]
*[[SOUBISE,St.Andrew,Grenada|SOUBISE]]
*[[SPRING GARDEN,St.Andrew,Grenada|SPRING GARDEN]]
*[[ST. CLOUDS,St.Andrew,Grenada|ST. CLOUDS]]
*[[ST. JAMES,St.Andrew,Grenada|ST. JAMES]]
*[[ST. JOHNS,St.Andrew,Grenada|ST. JOHNS]]
*[[TOUS CONGO,St.Andrew,Grenada|TOUS CONGO]]
*[[TELESCOPE,St.Andrew,Grenada|TELESCOPE]]
*[[TIVOLI,St.Andrew,Grenada|TIVOLI]]
*[[TUILLIERIES,St.Andrew,Grenada|TUILLIERIES]]
*[[UNION,St.Andrew,Grenada|UNION]]
*[[UPPER CAPITOL,St.Andrew,Grenada|UPPER CAPITOL]]
*[[THE VILLA,St.Andrew,Grenada|THE VILLA]]
*[[VILLAGE ROAD,St.Andrew,Grenada|VILLAGE ROAD]]
*[[VICTORIA STREET,St.Andrew,Grenada|VICTORIA STREET]]
*[[WALKER,St.Andrew,Grenada|WALKER]]
*[[WELLS ROAD,St.Andrew,Grenada|WELLS ROAD]]
==[[St.Mark,Grenada|St.Mark]]==
*[[BOCAGE,St.Mark,Grenada|BOCAGE]]
*[[BOCAGE, BONAIR,St.Mark,Grenada|BOCAGE, BONAIR]]
*[[BONAIR,St.Mark,Grenada|BONAIR]]
*[[BONIAR ROAD, BONAIR,St.Mark,Grenada|BONIAR ROAD, BONAIR]]
*[[CHARLOTTE VALE,St.Mark,Grenada|CHARLOTTE VALE]]
*[[COAST GUARD,St.Mark,Grenada|COAST GUARD]]
*[[CRUICKSHANK ROAD,St.Mark,Grenada|CRUICKSHANK ROAD]]
*[[CRUICKSHANK ROAD, VICTORIA,St.Mark,Grenada|CRUICKSHANK ROAD, VICTORIA]]
*[[DARVEY,St.Mark,Grenada|DARVEY]]
*[[DE VILLA,St.Mark,Grenada|DE VILLA]]
*[[DIAMOND ESTATE,St.Mark,Grenada|DIAMOND ESTATE]]
*[[DIAMOND STREET, VICTORIA,St.Mark,Grenada|DIAMOND STREET, VICTORIA]]
*[[DIEGO PIECE,St.Mark,Grenada|DIEGO PIECE]]
*[[DUQUESNE,St.Mark,Grenada|DUQUESNE]]
*[[FAIR FIELD ROAD, VICTORIA,St.Mark,Grenada|FAIR FIELD ROAD, VICTORIA]]
*[[GALL STREET, VICTORIA,St.Mark,Grenada|GALL STREET, VICTORIA]]
*[[GROSS POINT, GROSS POINT VILLA,St.Mark,Grenada|GROSS POINT, GROSS POINT VILLA]]
*[[INDUSTRY,St.Mark,Grenada|INDUSTRY]]
*[[LA RESOURCE,St.Mark,Grenada|LA RESOURCE]]
*[[MARAN,St.Mark,Grenada|MARAN]]
*[[MT. EDGECOMBE,St.Mark,Grenada|MT. EDGECOMBE]]
*[[MUNRO STREET, VICTORIA,St.Mark,Grenada|MUNRO STREET, VICTORIA]]
*[[NON-PARIEL,St.Mark,Grenada|NON-PARIEL]]
*[[PETIT BOCAGE,St.Mark,Grenada|PETIT BOCAGE]]
*[[QUEEN STREET, VICTORIA,St.Mark,Grenada|QUEEN STREET, VICTORIA]]
*[[RESOURCE,St.Mark,Grenada|RESOURCE]]
*[[RESOURCE, RESOURCE,St.Mark,Grenada|RESOURCE, RESOURCE]]
*[[RIVER SALLEE,St.Mark,Grenada|RIVER SALLEE]]
*[[SAMARITAN,St.Mark,Grenada|SAMARITAN]]
*[[SAMARITAN, DIEGO PIECE,St.Mark,Grenada|SAMARITAN, DIEGO PIECE]]
*[[ST DAVID STREET, VICTORIA,St.Mark,Grenada|ST DAVID STREET, VICTORIA]]
*[[ST JOHN STREET, VICTORIA,St.Mark,Grenada|ST JOHN STREET, VICTORIA]]
*[[STEWAD COTTAGE,St.Mark,Grenada|STEWAD COTTAGE]]
*[[VICTORIA,St.Mark,Grenada|VICTORIA]]
*[[WALTHAM,St.Mark,Grenada|WALTHAM]]
==[[St.Patrick,Grenada|St.Patrick]]==
*[[BATHWAY,St.Patrick,Grenada|BATHWAY]]
*[[BAY ROAD, SAUTEURS,St.Patrick,Grenada|BAY ROAD, SAUTEURS]]
*[[BELMONT,St.Patrick,Grenada|BELMONT]]
*[[CEDARS,St.Patrick,Grenada|CEDARS]]
*[[CHANTIMELLE,St.Patrick,Grenada|CHANTIMELLE]]
*[[CROSS STREET, SAUTEURS,St.Patrick,Grenada|CROSS STREET, SAUTEURS]]
*[[GLEBE LAND, SAUTEURS,St.Patrick,Grenada|GLEBE LAND, SAUTEURS]]
*[[GLEBE STREET, SAUTEURS,St.Patrick,Grenada|GLEBE STREET, SAUTEURS]]
*[[HERMITAGE,St.Patrick,Grenada|HERMITAGE]]
*[[HIGH GATE, MORNE FENDUE,St.Patrick,Grenada|HIGH GATE, MORNE FENDUE]]
*[[HIGH STREET, SAUTEURS,St.Patrick,Grenada|HIGH STREET, SAUTEURS]]
*[[HILL STREET, SAUTEURS,St.Patrick,Grenada|HILL STREET, SAUTEURS]]
*[[LA FORTUNE,St.Patrick,Grenada|LA FORTUNE]]
*[[LA TASTE,St.Patrick,Grenada|LA TASTE]]
*[[LEVERA,St.Patrick,Grenada|LEVERA]]
*[[MADEYS,St.Patrick,Grenada|MADEYS]]
*[[MAHOUT, ROSE HILL,St.Patrick,Grenada|MAHOUT, ROSE HILL]]
*[[MAIN STREET, SAUTEURS,St.Patrick,Grenada|MAIN STREET, SAUTEURS]]
*[[MARLI,St.Patrick,Grenada|MARLI]]
*[[MC NEILLY ALLEY, MARLI,St.Patrick,Grenada|MC NEILLY ALLEY, MARLI]]
*[[MC NELLIE ALLEY, SAUTEURS,St.Patrick,Grenada|MC NELLIE ALLEY, SAUTEURS]]
*[[MORNE FENDUE,St.Patrick,Grenada|MORNE FENDUE]]
*[[MT. CRAVEN,St.Patrick,Grenada|MT. CRAVEN]]
*[[MT. RICH,St.Patrick,Grenada|MT. RICH]]
*[[MT. ROSE,St.Patrick,Grenada|MT. ROSE]]
*[[PEGGYS WHIM, HERMITAGE,St.Patrick,Grenada|PEGGYS WHIM, HERMITAGE]]
*[[PLAINS,St.Patrick,Grenada|PLAINS]]
*[[POINTZFIELD,St.Patrick,Grenada|POINTZFIELD]]
*[[PROSPECT,St.Patrick,Grenada|PROSPECT]]
*[[RED HEAD STREET, LA FORTUNE,St.Patrick,Grenada|RED HEAD STREET, LA FORTUNE]]
*[[RED HEAD STREET, SAUTEURS,St.Patrick,Grenada|RED HEAD STREET, SAUTEURS]]
*[[RED MUD,St.Patrick,Grenada|RED MUD]]
*[[RIVER SALLEE,St.Patrick,Grenada|RIVER SALLEE]]
*[[ROSE HILL,St.Patrick,Grenada|ROSE HILL]]
*[[SALISBURY RD, SAUTEURS,St.Patrick,Grenada|SALISBURY RD, SAUTEURS]]
*[[SALISBURY STREET, SAUTEURS,St.Patrick,Grenada|SALISBURY STREET, SAUTEURS]]
*[[SAUTEURS,St.Patrick,Grenada|SAUTEURS]]
*[[THE VILLA, SAUTEURS,St.Patrick,Grenada|THE VILLA, SAUTEURS]]
== Uncategorized==
*[[ADAM'S ALLEY,,Grenada|ADAM'S ALLEY]]
*[[AFRICA,,Grenada|AFRICA]]
*[[APSLEY HILL,,Grenada|APSLEY HILL]]
*[[BLUGGO,,Grenada|BLUGGO]]
*[[BYWAY,,Grenada|BYWAY]]
*[[CELESTE,,Grenada|CELESTE]]
*[[CENTRAL DEPRADINE, GOUYAVE,,Grenada|CENTRAL DEPRADINE, GOUYAVE]]
*[[CHADDEAU,,Grenada|CHADDEAU]]
*[[CHANCERY STREET, MUNRO,,Grenada|CHANCERY STREET, MUNRO]]
*[[CHAPEL'S LANE,,Grenada|CHAPEL'S LANE]]
*[[CHURCH HILL ROAD,,Grenada|CHURCH HILL ROAD]]
*[[COOPER'S HILL,,Grenada|COOPER'S HILL]]
*[[CORNWALL STREET, SAUTEURS,,Grenada|CORNWALL STREET, SAUTEURS]]
*[[DE SILLES,,Grenada|DE SILLES]]
*[[DEHAR, GLEBE LAND,,Grenada|DEHAR, GLEBE LAND]]
*[[DOTHAN ESTATE,,Grenada|DOTHAN ESTATE]]
*[[DURRANT ROAD,,Grenada|DURRANT ROAD]]
*[[FENCE,,Grenada|FENCE]]
*[[FERGUSONS LANE, GOUYAVE,,Grenada|FERGUSONS LANE, GOUYAVE]]
*[[FIELD STREET,,Grenada|FIELD STREET]]
*[[FOUNTAIN,,Grenada|FOUNTAIN]]
*[[GLEBE LAND, SAUTEURS,,Grenada|GLEBE LAND, SAUTEURS]]
*[[GRAVEL STREET, VENDOME,,Grenada|GRAVEL STREET, VENDOME]]
*[[GROSS POINT VILLA,,Grenada|GROSS POINT VILLA]]
*[[HENRY STREET,,Grenada|HENRY STREET]]
*[[JONES ROAD,,Grenada|JONES ROAD]]
*[[LOWER CONFERENCE,,Grenada|LOWER CONFERENCE]]
*[[LOWER DEPRADINE, GOUYAVE,,Grenada|LOWER DEPRADINE, GOUYAVE]]
*[[LOWER LAURA,,Grenada|LOWER LAURA]]
*[[LYDER,,Grenada|LYDER]]
*[[MAHOUT, SAUTEURS,,Grenada|MAHOUT, SAUTEURS]]
*[[MAIN STREET, SAUTEURS,,Grenada|MAIN STREET, SAUTEURS]]
*[[MALIGNON,,Grenada|MALIGNON]]
*[[MARINE VILLA,,Grenada|MARINE VILLA]]
*[[MAUCHETTE,,Grenada|MAUCHETTE]]
*[[MC LAINE ALLEY, SAUTEURS,,Grenada|MC LAINE ALLEY, SAUTEURS]]
*[[MELROSE,,Grenada|MELROSE]]
*[[MT. ALEXANDER,,Grenada|MT. ALEXANDER]]
*[[MT. ANON,,Grenada|MT. ANON]]
*[[MT. CUMMA,,Grenada|MT. CUMMA]]
*[[MT. FELIX,,Grenada|MT. FELIX]]
*[[MT. PLASIR,,Grenada|MT. PLASIR]]
*[[MT. REUIL,,Grenada|MT. REUIL]]
*[[MT. RODNEY,,Grenada|MT. RODNEY]]
*[[MT. WILLIAMS,,Grenada|MT. WILLIAMS]]
*[[MUNRO STREET,,Grenada|MUNRO STREET]]
*[[MUNROE STREET, VICTORIA,,Grenada|MUNROE STREET, VICTORIA]]
*[[NETTLE POINT,,Grenada|NETTLE POINT]]
*[[NEW GARDENS,,Grenada|NEW GARDENS]]
*[[OTTLEY'S LANE,,Grenada|OTTLEY'S LANE]]
*[[PARK ESTATE,,Grenada|PARK ESTATE]]
*[[PENNY RETREAT,,Grenada|PENNY RETREAT]]
*[[SAMUELS AVENUE,,Grenada|SAMUELS AVENUE]]
*[[SAUTEURS, MAHOUT,,Grenada|SAUTEURS, MAHOUT]]
*[[SCHOOL LANE,,Grenada|SCHOOL LANE]]
*[[ST. BENOIT'S STREET,,Grenada|ST. BENOIT'S STREET]]
*[[ST. CYR,,Grenada|ST. CYR]]
*[[ST. DAVID STREET,,Grenada|ST. DAVID STREET]]
*[[ST. DOMINIC'S ST.,,Grenada|ST. DOMINIC'S ST.]]
*[[TAYBAKAY,,Grenada|TAYBAKAY]]
*[[TAYLOR,,Grenada|TAYLOR]]
*[[THE SUMMIT,,Grenada|THE SUMMIT]]
*[[THE VILLA, THE ROCK,,Grenada|THE VILLA, THE ROCK]]
*[[VINEYARD,,Grenada|VINEYARD]]
7a45accc4887c5fad05d639e183b801dbbe0e8be
181
180
2022-07-22T21:41:35Z
Wikiricky
1
/* St.Patrick */ added citations
wikitext
text/x-wiki
This is a list of populated villages, towns, settlements, and streets in Grenada. Many of the village names in Grenada are based upon the names of plantations. Grenada has 7 Parishes
==[[St.George,Grenada|St.George]]==
*[[ANNANDALE,St.George,Grenada|ANNANDALE]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/100 Annandale Estate - Legacies of British Slavery - UCL]</ref>
*[[ARCHIBALD AVENUE,St.George,Grenada|ARCHIBALD AVENUE]]
*[[BACK STREET, TEMPE,St.George,Grenada|BACK STREET, TEMPE]]
*[[BAIN'S ALLEY,St.George,Grenada|BAIN'S ALLEY]]
*[[BEAULIEU,St.George,Grenada|BEAULIEU]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1320 <nowiki>Beaulieu [ Grenada | St George ] - UCL</nowiki>]</ref>
*[[BELMONT,St.George,Grenada|BELMONT]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1290</ref>
*[[BLACK FOREST, VENDOME,St.George,Grenada|BLACK FOREST, VENDOME]]
*[[BLACKBURN ALLEY,St.George,Grenada|BLACKBURN ALLEY]]
*[[BOCA,St.George,Grenada|BOCA]]
*[[BON ACCORD ESTATE,St.George,Grenada|BON ACCORD ESTATE]]
*[[BOTANICAL GARDENS,St.George,Grenada|BOTANICAL GARDENS]]
*[[BRIGG'S ALLEY,St.George,Grenada|BRIGG'S ALLEY]]
*[[BRIZAN,St.George,Grenada|BRIZAN]]
*[[CAFE,St.George,Grenada|CAFE]]
*[[CALABASH ALLEY,St.George,Grenada|CALABASH ALLEY]]
*[[CALIVIGNY,St.George,Grenada|CALIVIGNY]]
*[[CALLISTE,St.George,Grenada|CALLISTE]]
*[[CARENAGE,St.George,Grenada|CARENAGE]]
*[[CARRIERE,St.George,Grenada|CARRIERE]]
*[[CEMETERY HILL,St.George,Grenada|CEMETERY HILL]]
*[[CHANTILLY, TEMPE,St.George,Grenada|CHANTILLY, TEMPE]]
*[[CHEMIN RIVER,St.George,Grenada|CHEMIN RIVER]]
*[[CHERRY HILL,St.George,Grenada|CHERRY HILL]]
*[[CHURCH STREET,St.George,Grenada|CHURCH STREET]]
*[[CIRCULAR DRIVE, FREQUENTE,St.George,Grenada|CIRCULAR DRIVE, FREQUENTE]]
*[[CLARKES COURT BAY,St.George,Grenada|CLARKES COURT BAY,]]
*[[COCOA ROAD, MARIAN,St.George,Grenada|COCOA ROAD, MARIAN]]
*[[CONFER,St.George,Grenada|CONFER]]
*[[CONSTANTINE,St.George,Grenada|CONSTANTINE]]
*[[CORBEAU TOWN,St.George,Grenada|CORBEAU TOWN]]
*[[COX ALLEY,St.George,Grenada|COX ALLEY]]
*[[CREIGHTON,St.George,Grenada|CREIGHTON]]
*[[CROSS STREET,St.George,Grenada|CROSS STREET]]
*[[D'ARBEAU,St.George,Grenada|D'ARBEAU]]
*[[DE FAUX,St.George,Grenada|DE FAUX]]
*[[DEPONTHIEU STREET,St.George,Grenada|DEPONTHIEU STREET]]
*[[DE VILLA, BLACKBURN ALLEY,St.George,Grenada|DE VILLA, BLACKBURN ALLEY]]
*[[DIXIE, SPRINGS,St.George,Grenada|DIXIE, SPRINGS]]
*[[DUSTY HIGHWAY, GRAND ANSE,St.George,Grenada|DUSTY HIGHWAY, GRAND ANSE]]
*[[EDGEMOND POINT,St.George,Grenada|EDGEMOND POINT]]
*[[FALL EDGE, GRAND ANSE,St.George,Grenada|FALL EDGE, GRAND ANSE]]
*[[FENTON VILLAGE,St.George,Grenada|FENTON VILLAGE]]
*[[FONTENOY,St.George,Grenada|FONTENOY]]
*[[FORT JUEDY,St.George,Grenada|FORT JUEDY]]
*[[FREQUENTE,St.George,Grenada|FREQUENTE]]
*[[GOLF COURSE,St.George,Grenada|GOLF COURSE]]
*[[GOOD HOPE,St.George,Grenada|GOOD HOPE]]
*[[GORE STREET,St.George,Grenada|GORE STREET]]
*[[GRAND ANSE,St.George,Grenada|GRAND ANSE]]
*[[GRAND ANSE ESTATE, LANCE AUX,St.George,Grenada|GRAND ANSE ESTATE, LANCE AUX]]
*[[GRAND ANSE HOUSING SCHEME,St.George,Grenada|GRAND ANSE HOUSING SCHEME]]
*[[GRAND ANSE VALLEY,St.George,Grenada|GRAND ANSE VALLEY]]
*[[GRAND ETANG ROAD,St.George,Grenada|GRAND ETANG ROAD]]
*[[GRAND MAL,St.George,Grenada|GRAND MAL]]
*[[GRANTON,St.George,Grenada|GRANTON]]
*[[GREEN STREET,St.George,Grenada|GREEN STREET]]
*[[GRENVILLE STREET,St.George,Grenada|GRENVILLE STREET]]
*[[GRENVILLE VALE,St.George,Grenada|GRENVILLE VALE]]
*[[GREY STONE, BELMONT,St.George,Grenada|GREY STONE, BELMONT]]
*[[H.A BLAIZE STREET,St.George,Grenada|H.A BLAIZE STREET]]
*[[HADDON SMITH STREET,St.George,Grenada|HADDON SMITH STREET]]
*[[HALIFAX STREET,St.George,Grenada|HALIFAX STREET]]
*[[HAPPY HILL,St.George,Grenada|HAPPY HILL]]
*[[HILL TOP, CALIVIGNY,St.George,Grenada|HILL TOP, CALIVIGNY]]
*[[HILLS ROAD,St.George,Grenada|HILLS ROAD]]
*[[HILLSBOROUGH STREET,St.George,Grenada|HILLSBOROUGH STREET]]
*[[HOPE VALE,St.George,Grenada|HOPE VALE]]
*[[INDEPENDENCE AVENUE,St.George,Grenada|INDEPENDENCE AVENUE]]
*[[JEAN ANGLIAS,St.George,Grenada|JEAN ANGLIAS]]
*[[JUMBIE,St.George,Grenada|JUMBIE]]
*[[KAFE BEAU HILL,St.George,Grenada|KAFE BEAU HILL]]
*[[LA BORIE,St.George,Grenada|LA BORIE]]
*[[LA MODE,St.George,Grenada|LA MODE]]
*[[LAGOON ROAD,St.George,Grenada|LAGOON ROAD]]
*[[LANCE AUX EPINES,St.George,Grenada|LANCE AUX EPINES]]
*[[LONG GUTTER,St.George,Grenada|LONG GUTTER]]
*[[LOWER MORNE JALOUX,St.George,Grenada|LOWER MORNE JALOUX]]
*[[LOWER WOBURN,St.George,Grenada|LOWER WOBURN]]
*[[LOWTHER'S LANE,St.George,Grenada|LOWTHER'S LANE]]
*[[LUCAS STREET,St.George,Grenada|LUCAS STREET]]
*[[MALONEY STREET,St.George,Grenada|MALONEY STREET]]
*[[MANGO, NEW HAMPSHIRE,St.George,Grenada|MANGO, NEW HAMPSHIRE]]
*[[MARIAN,St.George,Grenada|MARIAN]]
*[[MARKET HILL,St.George,Grenada|MARKET HILL]]
*[[MARRAST HILL,St.George,Grenada|MARRAST HILL]]
*[[MAURICE BISHOP HIGHWAY, GRAND ANSE,St.George,Grenada|MAURICE BISHOP HIGHWAY, GRAND ANSE]]
*[[MAURICE BISHOP HWY, GRAND,St.George,Grenada|MAURICE BISHOP HWY, GRAND]]
*[[MELVILLE STREET,St.George,Grenada|MELVILLE STREET]]
*[[MOLINIERE,St.George,Grenada|MOLINIERE]]
*[[MONT TOUTE,St.George,Grenada|MONT TOUTE]]
*[[MORNE JALOUX,St.George,Grenada|MORNE JALOUX]]
*[[MORNE ROUGE,St.George,Grenada|MORNE ROUGE]]
*[[MORTLEY ROAD,St.George,Grenada|MORTLEY ROAD]]
*[[MT. AIRY,St.George,Grenada|MT. AIRY]]
*[[MT. GAY,St.George,Grenada|MT. GAY]]
*[[MT. HARTMAN,St.George,Grenada|MT. HARTMAN]]
*[[MT. MORITZ,St.George,Grenada|MT. MORITZ]]
*[[MT. PARNASSUS,St.George,Grenada|MT. PARNASSUS]]
*[[MT. RUSH,St.George,Grenada|MT. RUSH]]
*[[MT. WHELDALE,St.George,Grenada|MT. WHELDALE]]
*[[OBSERVATORY ROAD,St.George,Grenada|OBSERVATORY ROAD]]
*[[OLD FORT,St.George,Grenada|OLD FORT]]
*[[PADDOCK,St.George,Grenada|PADDOCK]]
*[[PARADE,St.George,Grenada|PARADE]]
*[[PARK LANE,St.George,Grenada|PARK LANE]]
*[[PERSEVERANCE,St.George,Grenada|PERSEVERANCE]]
*[[PETERSFIELD,St.George,Grenada|PETERSFIELD]]
*[[POINT SALINES,St.George,Grenada|POINT SALINES]]
*[[QUEEN'S PARK,St.George,Grenada|QUEEN'S PARK]]
*[[RADIX, MT. PARNASSUS,St.George,Grenada|RADIX, MT. PARNASSUS]]
*[[RAVINE, MT. GAY,St.George,Grenada|RAVINE, MT. GAY]]
*[[RICHMOND HILL,St.George,Grenada|RICHMOND HILL]]
*[[RIVER ROAD,St.George,Grenada|RIVER ROAD]]
*[[ROEBUCK,St.George,Grenada|ROEBUCK]]
*[[SANS SOUCI,St.George,Grenada|SANS SOUCI]]
*[[SCOTT STREET,St.George,Grenada|SCOTT STREET]]
*[[SHENDA,St.George,Grenada|SHENDA]]
*[[SIMMONS STREET,St.George,Grenada|SIMMONS STREET]]
*[[SNUG CORNER,St.George,Grenada|SNUG CORNER]]
*[[SPRINGS,St.George,Grenada|SPRINGS]]
*[[ST. GEORGE ESTATE,St.George,Grenada|ST. GEORGE ESTATE]]
*[[ST. JOHN STREET,St.George,Grenada|ST. JOHN STREET]]
*[[ST. JUILLE STREET,St.George,Grenada|ST. JUILLE STREET]]
*[[ST.PAUL'S,St.George,Grenada|ST.PAUL'S]]
*[[SUNSET VALLEY, POINT SALINES,St.George,Grenada|SUNSET VALLEY, POINT SALINES]]
*[[TANTEEN, TANTEEN TERRACE,St.George,Grenada|TANTEEN, TANTEEN TERRACE]]
*[[TEMPE,St.George,Grenada|TEMPE]]
*[[TETMUND,St.George,Grenada|TETMUND]]
*[[THE BOCAS,St.George,Grenada|THE BOCAS]]
*[[THE GREENS,St.George,Grenada|THE GREENS]]
*[[THE LIMES,St.George,Grenada|THE LIMES]]
*[[THE STONES, GRAND ANSE,St.George,Grenada|THE STONES, GRAND ANSE]]
*[[THE STONES, NEW HAMPSHIRE,St.George,Grenada|THE STONES, NEW HAMPSHIRE]]
*[[THE VILLA, LONG GUTTER,St.George,Grenada|THE VILLA, LONG GUTTER]]
*[[TRANQUIL LANE,St.George,Grenada|TRANQUIL LANE]]
*[[TRUE BLUE,St.George,Grenada|TRUE BLUE]]
*[[TRYNE ALLEY,St.George,Grenada|TRYNE ALLEY]]
*[[TURTLE BACK DRIVE, LANCE AUX,St.George,Grenada|TURTLE BACK DRIVE, LANCE AUX]]
*[[TYRREL STREET,St.George,Grenada|TYRREL STREET]]
*[[UPPER MORNE JALOUX,St.George,Grenada|UPPER MORNE JALOUX]]
*[[UPPER WOBURN,St.George,Grenada|UPPER WOBURN]]
*[[VENDOME,St.George,Grenada|VENDOME]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1287</ref>
*[[WELCOME,St.George,Grenada|WELCOME]]
*[[WHITE GUN,St.George,Grenada|WHITE GUN]]
*[[WHITE HALL, PARK LANE,St.George,Grenada|WHITE HALL, PARK LANE]]
*[[WILLIAMSON ROAD,St.George,Grenada|WILLIAMSON ROAD]]
*[[WILLIS,St.George,Grenada|WILLIS]]
*[[WOODLANDS,St.George,Grenada|WOODLANDS]]
*[[WOOLWICH ROAD,St.George,Grenada|WOOLWICH ROAD]]
*[[YOUNG STREET,St.George,Grenada|YOUNG STREET]]
==[[St.John,Grenada|St.John]]==
*[[BACK STREET,St.John,Grenada|BACK STREET]]
*[[BELVIDERE,St.John,Grenada|BELVIDERE]]
*[[BLACK BAY,St.John,Grenada|BLACK BAY]]
*[[BOYKES LANE, GOUYAVE,St.John,Grenada|BOYKES LANE, GOUYAVE]]
*[[BROOKLYN,St.John,Grenada|BROOKLYN]]
*[[BROTHERS ESTATE,St.John,Grenada|BROTHERS ESTATE]]
*[[CENTRAL DEPRADINE STREET,St.John,Grenada|CENTRAL DEPRADINE STREET]]
*[[CLOZIER,St.John,Grenada|CLOZIER]]
*[[CONCORD,St.John,Grenada|CONCORD]]
*[[CORNETS WALK, GOUYAVE,St.John,Grenada|CORNETS WALK, GOUYAVE]]
*[[COTTON BAILY,St.John,Grenada|COTTON BAILY]]
*[[D LANCE, UPPER DEPRADINE,St.John,Grenada|D LANCE, UPPER DEPRADINE]]
*[[DOCTOR BELLE,St.John,Grenada|DOCTOR BELLE]]
*[[DOUGALDSTON,St.John,Grenada|DOUGALDSTON]]
*[[EDWARD STREET, GOUYAVE,St.John,Grenada|EDWARD STREET, GOUYAVE]]
*[[FERGUSON'S LANE,St.John,Grenada|FERGUSON'S LANE]]
*[[FLORIDA,St.John,Grenada|FLORIDA]]
*[[GOUYAVE ESTATE,St.John,Grenada|GOUYAVE ESTATE]]
*[[GRAND ROY,St.John,Grenada|GRAND ROY]]
*[[HILLSVIEW, GOUYAVE,St.John,Grenada|HILLSVIEW, GOUYAVE]]
*[[LANGTON ROAD, GOUYAVE,St.John,Grenada|LANGTON ROAD, GOUYAVE]]
*[[LOWER DEPRADINE STREET,St.John,Grenada|LOWER DEPRADINE STREET]]
*[[MARIGOT,St.John,Grenada|MARIGOT]]
*[[MITCHELL'S LANE,St.John,Grenada|MITCHELL'S LANE]]
*[[MONGO ROAD, GOUYAVE ESTATE,St.John,Grenada|MONGO ROAD, GOUYAVE ESTATE]]
*[[MT. GRANBY,St.John,Grenada|MT. GRANBY]]
*[[MT. NESBIT,St.John,Grenada|MT. NESBIT]]
*[[NEW STREET, EDWARD STREET,St.John,Grenada|NEW STREET, EDWARD STREET]]
*[[NEW STREET, GOUYAVE,St.John,Grenada|NEW STREET, GOUYAVE]]
*[[PALMISTE,St.John,Grenada|PALMISTE]]
*[[QUEEN STREET, ST. JOHN'S,St.John,Grenada|QUEEN STREET, ST. JOHN'S]]
*[[RENNIE,St.John,Grenada|RENNIE]]
*[[RIVER LANE, GOUYAVE ESTATE,St.John,Grenada|RIVER LANE, GOUYAVE ESTATE]]
*[[RIVER LANE, GOUYAVE,St.John,Grenada|RIVER LANE, GOUYAVE]]
*[[ROSEMOUNT,St.John,Grenada|ROSEMOUNT]]
*[[SCHOOL LANE, GOUYAVE,St.John,Grenada|SCHOOL LANE, GOUYAVE]]
*[[ST BENOIT STREET, GOUYAVE,St.John,Grenada|ST BENOIT STREET, GOUYAVE]]
*[[ST DOMINIC STREET, GOUYAVE,St.John,Grenada|ST DOMINIC STREET, GOUYAVE]]
*[[ST DOMINIC, GOUYAVE,St.John,Grenada|ST DOMINIC, GOUYAVE]]
*[[ST FRANCIS, GOUYAVE,St.John,Grenada|ST FRANCIS, GOUYAVE]]
*[[ST PETERS STREET, GOUYAVE,St.John,Grenada|ST PETERS STREET, GOUYAVE]]
*[[ST PETERS, GOUYAVE,St.John,Grenada|ST PETERS, GOUYAVE]]
*[[ST. FRANCIS STREET,St.John,Grenada|ST. FRANCIS STREET]]
*[[ST. PETER STREET,St.John,Grenada|ST. PETER STREET]]
*[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]]
*[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]]
*[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]]
*[[UPPER DEPRADINE STREET,St.John,Grenada|UPPER DEPRADINE STREET]]
*[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]]
*[[VICTORIA ROAD, GOUYAVE,St.John,Grenada|VICTORIA ROAD, GOUYAVE]]
*[[VICTORIA STREET,St.John,Grenada|VICTORIA STREET]]
*[[WATERLOO,St.John,Grenada|WATERLOO]]
*[[WOODFORD,St.John,Grenada|WOODFORD]]
==[[St.David,Grenada|St.David]]==
*[[APRES TOUTE,St.David,Grenada|APRES TOUTE]]
*[[BAILLES BACOLET,St.David,Grenada|BAILLES BACOLET]]
*[[BEATON,St.David,Grenada|BEATON]]
*[[BELLE ISLE,St.David,Grenada|BELLE ISLE]]
*[[BELLE VUE,St.David,Grenada|BELLE VUE]]
*[[BOCAGE,St.David,Grenada|BOCAGE]]
*[[CHAMPFLEURS,St.David,Grenada|CHAMPFLEURS]]
*[[COALS GAPS,St.David,Grenada|COALS GAPS]]
*[[CONTENT,St.David,Grenada|CONTENT]]
*[[CORINTH,St.David,Grenada|CORINTH]]
*[[DUDMAR,St.David,Grenada|DUDMAR]]
*[[EPPIN FOREST,St.David,Grenada|EPPIN FOREST]]
*[[HARMONY HALL,St.David,Grenada|HARMONY HALL]]
*[[LA CALOHME,St.David,Grenada|LA CALOHME]]
*[[LA FEMME,St.David,Grenada|LA FEMME]]
*[[LA FLORETTA,St.David,Grenada|LA FLORETTA]]
*[[LA PASTORA,St.David,Grenada|LA PASTORA]]
*[[LA SAGESSE,St.David,Grenada|LA SAGESSE]]
*[[LA TANTE,St.David,Grenada|LA TANTE]]
*[[MARLMOUNT,St.David,Grenada|MARLMOUNT]]
*[[MARDIGRAS,St.David,Grenada|MARDIGRAS]]
*[[MARLMOUNT, GLEBE LAND,St.David,Grenada|MARLMOUNT, GLEBE LAND]]
*[[MAULTY,St.David,Grenada|MAULTY]]
*[[MAYANN, CONSTANTINE,St.David,Grenada|MAYANN, CONSTANTINE]]
*[[MINORCA,St.David,Grenada|MINORCA]]
*[[MORNE DELICE,St.David,Grenada|MORNE DELICE]]
*[[MON REPOS,St.David,Grenada|MON REPOS]]
*[[MT. AGNES,St.David,Grenada|MT. AGNES]]
*[[MT. DISIRE,St.David,Grenada|MT. DISIRE]]
*[[MT. ROSE,St.David,Grenada|MT. ROSE]]
*[[MYANN, CONSTANTINE,St.David,Grenada|MYANN, CONSTANTINE]]
*[[NEW WESTERHALL,St.David,Grenada|NEW WESTERHALL]]
*[[OLD WESTERHALL,St.David,Grenada|OLD WESTERHALL]]
*[[PERDMONTEMPS,St.David,Grenada|PERDMONTEMPS]]
*[[PETITE BACAYE, NEW,St.David,Grenada|PETITE BACAYE, NEW]]
*[[PETITE ESPERANCE,St.David,Grenada|PETITE ESPERANCE]]
*[[PETITE ETANG,St.David,Grenada|PETITE ETANG]]
*[[POMME ROSE,St.David,Grenada|POMME ROSE]]
*[[RED GATE,St.David,Grenada|RED GATE]]
*[[REDMUD,St.David,Grenada|REDMUD]]
*[[REQUIN,St.David,Grenada|REQUIN]]
*[[SLINGER STREET,St.David,Grenada|SLINGER STREET]]
*[[SYRACUSE,St.David,Grenada|SYRACUSE]]
*[[THEBAIDE,St.David,Grenada|THEBAIDE]]
*[[TABOR,St.David,Grenada|TABOR]]
*[[UPPER LAURA,St.David,Grenada|UPPER LAURA]]
*[[VINCENNES,St.David,Grenada|VINCENNES]]
*[[WESTERHALL POINT,St.David,Grenada|WESTERHALL POINT]]
*[[WINDSOR,St.David,Grenada|WINDSOR]]
*[[WINDSOR FOREST,St.David,Grenada|WINDSOR FOREST]]
==[[Carriacou and Petite Martinique,Grenada|Carriacou and Petite Martinique]]==
*[[BAYALEAU,Carriacou,Grenada|BAYALEAU]]
*[[BEAUSEJOUR,Carriacou,Grenada|BEAUSEJOUR]]
*[[BELAIR,Carriacou,Grenada|BELAIR]]
*[[BELLE VUE,Carriacou,Grenada|BELLE VUE]]
*[[BELMONT,Carriacou,Grenada|BELMONT]]
*[[BOGLES,Carriacou,Grenada|BOGLES]]
*[[BRUNSWICK,Carriacou,Grenada|BRUNSWICK]]
*[[CHURCH STREET, HILLSBOROUGH,Carriacou,Grenada|CHURCH STREET, HILLSBOROUGH]]
*[[CRAIGSTON,Carriacou,Grenada|CRAIGSTON]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1385]</ref>
*[[CHERRY HILL,Carriacou,Grenada|CHERRY HILL]]
*[[DOVER,Carriacou,Grenada|DOVER]]
*[[DUMFRIES,Carriacou,Grenada|DUMFRIES]]
*[[GRAND BAY,Carriacou,Grenada|GRAND BAY]]
*[[HARVEY VALE,Carriacou,Grenada|HARVEY VALE]]
*[[HERMITAGE,Carriacou,Grenada|HERMITAGE]]
*[[HILLSBOROUGH,Carriacou,Grenada|HILLSBOROUGH]]
*[[L'ESTERRE,Carriacou,Grenada|L'ESTERRE]]
*[[LAURISTON,Carriacou,Grenada|LAURISTON]]
*[[LIMLAIR,Carriacou,Grenada|LIMLAIR]]
*[[MELDRUM,Carriacou,Grenada|MELDRUM]]
*[[MT. DISIRE,Carriacou,Grenada|MT. DISIRE]]
*[[MT. PLEASANT,Carriacou,Grenada|MT. PLEASANT]]
*[[MT. ST ERVANS, L'ESTERRIE,Carriacou,Grenada|MT ST ERVANS, L'ESTERRIE]]
*[[MT. ROYAL,Carriacou,Grenada|MT. ROYAL]]
*[[PROSPECT HALL,Carriacou,Grenada|PROSPECT HALL]]
*[[SIX ROADS,Carriacou,Grenada|SIX ROADS]]
*[[TOP HILL,Carriacou,Grenada|TOP HILL]]
*[[WINDWARD,Carriacou,Grenada|WINDWARD]]
*[[PETITE MARTINIQUE,PETIT MARTINIQUE,Grenada|PETITE MARTINIQUE]]
==[[St.Andrew,Grenada|St.Andrew]]==
*[[MT. FANN,St. Andrew,Grenada|MT. FANN]]
*[[ADELPHI,St.Andrew,Grenada|ADELPHI]]
*[[AHOMA,St.Andrew,Grenada|AHOMA]]
*[[BALTHAZAR,St.Andrew,Grenada|BALTHAZAR]]
*[[BAYROAD,St.Andrew,Grenada|BAYROAD]]
*[[BLAIZE,St.Andrew,Grenada|BLAIZE]]
*[[BAMBOO,St.Andrew,Grenada|BAMBOO]]
*[[BATTLE HILL,St.Andrew,Grenada|BATTLE HILL]]
*[[BEAUREGARD,St.Andrew,Grenada|BEAUREGARD]]
*[[BELLE VUE,St.Andrew,Grenada|BELLE VUE]]
*[[BELVEDERE,St.Andrew,Grenada|BELVEDERE]]
*[[BEN JONES STREET,St.Andrew,Grenada|BEN JONES STREET]]
*[[BIRCHGROVE,St.Andrew,Grenada|BIRCHGROVE]]
*[[BYELANDS,St.Andrew,Grenada|BYELANDS]]
*[[CAFE,St.Andrew,Grenada|CAFE]]
*[[CANAL ROAD,St.Andrew,Grenada|CANAL ROAD]]
*[[CARRIERE,St.Andrew,Grenada|CARRIERE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1305</ref>
*[[CARRUTH,St.Andrew,Grenada|CARRUTH]]
*[[CASTIGNE,St.Andrew,Grenada|CASTIGNE]]
*[[CHAPEL ROAD,St.Andrew,Grenada|CHAPEL ROAD]]
*[[COCOA ROAD,St.Andrew,Grenada|COCOA ROAD]]
*[[CODRONA,St.Andrew,Grenada|CODRONA]]
*[[CONFERENCE,St.Andrew,Grenada|CONFERENCE]]
*[[COOKHILL ROAD,St.Andrew,Grenada|COOKHILL ROAD]]
*[[CROCHU,St.Andrew,Grenada|CROCHU]]
*[[DE BLANDEAU,St.Andrew,Grenada|DE BLANDEAU]]
*[[DUNFERMLINE,St.Andrew,Grenada|DUNFERMLINE]]
*[[DURRANT ROAD,St.Andrew,Grenada|DURRANT ROAD]]
*[[FORD HILL ROAD,St.Andrew,Grenada|FORD HILL ROAD]]
*[[FELIX PARK,St.Andrew,Grenada|FELIX PARK]]
*[[GRANLETTE,St.Andrew,Grenada|GRANLETTE]]
*[[GEORGE V. STREET,St.Andrew,Grenada|GEORGE V. STREET]]
*[[GLADSTONE ROAD,St.Andrew,Grenada|GLADSTONE ROAD]]
*[[GOUYAVE,St.Andrew,Grenada|GOUYAVE]]
*[[GRAND BACOLET,St.Andrew,Grenada|GRAND BACOLET]]
*[[GRAND BRAS,St.Andrew,Grenada|GRAND BRAS]]
*[[GRIFFIN LANE,St.Andrew,Grenada|GRIFFIN LANE]]
*[[GUPO,St.Andrew,Grenada|GUPO]]
*[[HARFORD VILLAGE,St.Andrew,Grenada|HARFORD VILLAGE]]
*[[HERMON,St.Andrew,Grenada|HERMON]]
*[[HILLS ROAD, LOWER,St.Andrew,Grenada|HILLS ROAD]]
*[[HOPE,St.Andrew,Grenada|HOPE]]
*[[HOPE CITY,St.Andrew,Grenada|HOPE CITY]]
*[[LA DIGUE,St.Andrew,Grenada|LA DIGUE]]
*[[LA FILLETTE,St.Andrew,Grenada|LA FILLETTE]]
*[[LA POTERIE,St.Andrew,Grenada|LA POTERIE]]
*[[L'ESTERRIE,St.Andrew,Grenada|L'ESTERRIE]]
*[[LOWER CAPITOL,St.Andrew,Grenada|LOWER CAPITOL]]
*[[LOWER HARFORD VILLAGE,St.Andrew,Grenada|LOWER HARFORD VILLAGE]]
*[[MAHOUT,St.Andrew,Grenada|MAHOUT]]
*[[MAMMA CANNES,St.Andrew,Grenada|MAMMA CANNES]]
*[[MARQUIS,St.Andrew,Grenada|MARQUIS]]
*[[MC NELLIE ALLEY, SAUTEURS,St.Andrew,Grenada|MC NELLIE ALLEY, SAUTEURS]]
*[[MC NEILLY, SAUTEURS,St.Andrew,Grenada|MC NEILLY, SAUTEURS]]
*[[MEADOW,St.Andrew,Grenada|MEADOW]]
*[[MELDRUM,St.Andrew,Grenada|MELDRUM]]
*[[MIRABEAU,St.Andrew,Grenada|MIRABEAU]]
*[[MORNE LOUNGE,St.Andrew,Grenada|MORNE LOUNGE]]
*[[MOYAH,St.Andrew,Grenada|MOYAH]]
*[[MT. ST ERVANS, LA DIGUE,St.Andrew,Grenada|MT ST ERVANS, LA DIGUE]]
*[[MT. CARMEL,St.Andrew,Grenada|MT. CARMEL]]
*[[MT. HORNE,St.Andrew,Grenada|MT. HORNE]]
*[[MT. PLEASANT,St.Andrew,Grenada|MT. PLEASANT]]
*[[MT. SEALEY,St.Andrew,Grenada|MT. SEALEY]]
*[[MUNICH,St.Andrew,Grenada|MUNICH]]
*[[NEW HAMPSHIRE,St.Andrew,Grenada|NEW HAMPSHIRE]]
*[[NOELSVILLE,St.Andrew,Grenada|NOELSVILLE]]
*[[PARACLETE,St.Andrew,Grenada|PARACLETE]]
*[[PARADISE,St.Andrew,Grenada|PARADISE]]
*[[PEARLS,St.Andrew,Grenada|PEARLS]]
*[[PLATEAU,St.Andrew,Grenada|PLATEAU]]
*[[PLEASANCE,St.Andrew,Grenada|PLEASANCE]]
*[[POST ROYAL,St.Andrew,Grenada|POST ROYAL]]
*[[PROVIDENCE,St.Andrew,Grenada|PROVIDENCE]]
*[[RETREAT,St.Andrew,Grenada|RETREAT]]
*[[RICHMOND,St.Andrew,Grenada|RICHMOND]]
*[[RIVULET LANE,St.Andrew,Grenada|RIVULET LANE]]
*[[SABB,St.Andrew,Grenada|SABB]]
*[[SALISBURY ROAD,St.Andrew,Grenada|SALISBURY ROAD]]
*[[SAMUEL AVENUE, CALIVIGNY,St.Andrew,Grenada|SAMUEL AVENUE, CALIVIGNY]]
*[[SEATON BROWNE STREET,St.Andrew,Grenada|SEATON BROWNE STREET]]
*[[SEATON JAMES STREET,St.Andrew,Grenada|SEATON JAMES STREET]]
*[[SENDALL STREET,St.Andrew,Grenada|SENDALL STREET]]
*[[SIMON,St.Andrew,Grenada|SIMON]]
*[[SNELL HALL,St.Andrew,Grenada|SNELL HALL]]
*[[SOUBISE,St.Andrew,Grenada|SOUBISE]]
*[[SPRING GARDEN,St.Andrew,Grenada|SPRING GARDEN]]
*[[ST. CLOUDS,St.Andrew,Grenada|ST. CLOUDS]]
*[[ST. JAMES,St.Andrew,Grenada|ST. JAMES]]
*[[ST. JOHNS,St.Andrew,Grenada|ST. JOHNS]]
*[[TOUS CONGO,St.Andrew,Grenada|TOUS CONGO]]
*[[TELESCOPE,St.Andrew,Grenada|TELESCOPE]]
*[[TIVOLI,St.Andrew,Grenada|TIVOLI]]
*[[TUILLIERIES,St.Andrew,Grenada|TUILLIERIES]]
*[[UNION,St.Andrew,Grenada|UNION]]
*[[UPPER CAPITOL,St.Andrew,Grenada|UPPER CAPITOL]]
*[[THE VILLA,St.Andrew,Grenada|THE VILLA]]
*[[VILLAGE ROAD,St.Andrew,Grenada|VILLAGE ROAD]]
*[[VICTORIA STREET,St.Andrew,Grenada|VICTORIA STREET]]
*[[WALKER,St.Andrew,Grenada|WALKER]]
*[[WELLS ROAD,St.Andrew,Grenada|WELLS ROAD]]
==[[St.Mark,Grenada|St.Mark]]==
*[[BOCAGE,St.Mark,Grenada|BOCAGE]]
*[[BOCAGE, BONAIR,St.Mark,Grenada|BOCAGE, BONAIR]]
*[[BONAIR,St.Mark,Grenada|BONAIR]]
*[[BONIAR ROAD, BONAIR,St.Mark,Grenada|BONIAR ROAD, BONAIR]]
*[[CHARLOTTE VALE,St.Mark,Grenada|CHARLOTTE VALE]]
*[[COAST GUARD,St.Mark,Grenada|COAST GUARD]]
*[[CRUICKSHANK ROAD,St.Mark,Grenada|CRUICKSHANK ROAD]]
*[[CRUICKSHANK ROAD, VICTORIA,St.Mark,Grenada|CRUICKSHANK ROAD, VICTORIA]]
*[[DARVEY,St.Mark,Grenada|DARVEY]]
*[[DE VILLA,St.Mark,Grenada|DE VILLA]]
*[[DIAMOND ESTATE,St.Mark,Grenada|DIAMOND ESTATE]]
*[[DIAMOND STREET, VICTORIA,St.Mark,Grenada|DIAMOND STREET, VICTORIA]]
*[[DIEGO PIECE,St.Mark,Grenada|DIEGO PIECE]]
*[[DUQUESNE,St.Mark,Grenada|DUQUESNE]]
*[[FAIR FIELD ROAD, VICTORIA,St.Mark,Grenada|FAIR FIELD ROAD, VICTORIA]]
*[[GALL STREET, VICTORIA,St.Mark,Grenada|GALL STREET, VICTORIA]]
*[[GROSS POINT, GROSS POINT VILLA,St.Mark,Grenada|GROSS POINT, GROSS POINT VILLA]]
*[[INDUSTRY,St.Mark,Grenada|INDUSTRY]]
*[[LA RESOURCE,St.Mark,Grenada|LA RESOURCE]]
*[[MARAN,St.Mark,Grenada|MARAN]]
*[[MT. EDGECOMBE,St.Mark,Grenada|MT. EDGECOMBE]]
*[[MUNRO STREET, VICTORIA,St.Mark,Grenada|MUNRO STREET, VICTORIA]]
*[[NON-PARIEL,St.Mark,Grenada|NON-PARIEL]]
*[[PETIT BOCAGE,St.Mark,Grenada|PETIT BOCAGE]]
*[[QUEEN STREET, VICTORIA,St.Mark,Grenada|QUEEN STREET, VICTORIA]]
*[[RESOURCE,St.Mark,Grenada|RESOURCE]]
*[[RESOURCE, RESOURCE,St.Mark,Grenada|RESOURCE, RESOURCE]]
*[[RIVER SALLEE,St.Mark,Grenada|RIVER SALLEE]]
*[[SAMARITAN,St.Mark,Grenada|SAMARITAN]]
*[[SAMARITAN, DIEGO PIECE,St.Mark,Grenada|SAMARITAN, DIEGO PIECE]]
*[[ST DAVID STREET, VICTORIA,St.Mark,Grenada|ST DAVID STREET, VICTORIA]]
*[[ST JOHN STREET, VICTORIA,St.Mark,Grenada|ST JOHN STREET, VICTORIA]]
*[[STEWAD COTTAGE,St.Mark,Grenada|STEWAD COTTAGE]]
*[[VICTORIA,St.Mark,Grenada|VICTORIA]]
*[[WALTHAM,St.Mark,Grenada|WALTHAM]]
==[[St.Patrick,Grenada|St.Patrick]]==
*[[BATHWAY,St.Patrick,Grenada|BATHWAY]]
*[[BAY ROAD, SAUTEURS,St.Patrick,Grenada|BAY ROAD, SAUTEURS]]
*[[BELMONT,St.Patrick,Grenada|BELMONT]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1317</ref>
*[[CEDARS,St.Patrick,Grenada|CEDARS]]
*[[CHANTIMELLE,St.Patrick,Grenada|CHANTIMELLE]]
*[[CROSS STREET, SAUTEURS,St.Patrick,Grenada|CROSS STREET, SAUTEURS]]
*[[GLEBE LAND, SAUTEURS,St.Patrick,Grenada|GLEBE LAND, SAUTEURS]]
*[[GLEBE STREET, SAUTEURS,St.Patrick,Grenada|GLEBE STREET, SAUTEURS]]
*[[HERMITAGE,St.Patrick,Grenada|HERMITAGE]]
*[[HIGH GATE, MORNE FENDUE,St.Patrick,Grenada|HIGH GATE, MORNE FENDUE]]
*[[HIGH STREET, SAUTEURS,St.Patrick,Grenada|HIGH STREET, SAUTEURS]]
*[[HILL STREET, SAUTEURS,St.Patrick,Grenada|HILL STREET, SAUTEURS]]
*[[LA FORTUNE,St.Patrick,Grenada|LA FORTUNE]]
*[[LA TASTE,St.Patrick,Grenada|LA TASTE]]
*[[LEVERA,St.Patrick,Grenada|LEVERA]]
*[[MADEYS,St.Patrick,Grenada|MADEYS]]
*[[MAHOUT, ROSE HILL,St.Patrick,Grenada|MAHOUT, ROSE HILL]]
*[[MAIN STREET, SAUTEURS,St.Patrick,Grenada|MAIN STREET, SAUTEURS]]
*[[MARLI,St.Patrick,Grenada|MARLI]]
*[[MC NEILLY ALLEY, MARLI,St.Patrick,Grenada|MC NEILLY ALLEY, MARLI]]
*[[MC NELLIE ALLEY, SAUTEURS,St.Patrick,Grenada|MC NELLIE ALLEY, SAUTEURS]]
*[[MORNE FENDUE,St.Patrick,Grenada|MORNE FENDUE]]
*[[MT. CRAVEN,St.Patrick,Grenada|MT. CRAVEN]]
*[[MT. RICH,St.Patrick,Grenada|MT. RICH]]
*[[MT. ROSE,St.Patrick,Grenada|MT. ROSE]]
*[[PEGGYS WHIM, HERMITAGE,St.Patrick,Grenada|PEGGYS WHIM, HERMITAGE]]
*[[PLAINS,St.Patrick,Grenada|PLAINS]]
*[[POINTZFIELD,St.Patrick,Grenada|POINTZFIELD]]
*[[PROSPECT,St.Patrick,Grenada|PROSPECT]]
*[[RED HEAD STREET, LA FORTUNE,St.Patrick,Grenada|RED HEAD STREET, LA FORTUNE]]
*[[RED HEAD STREET, SAUTEURS,St.Patrick,Grenada|RED HEAD STREET, SAUTEURS]]
*[[RED MUD,St.Patrick,Grenada|RED MUD]]
*[[RIVER SALLEE,St.Patrick,Grenada|RIVER SALLEE]]
*[[ROSE HILL,St.Patrick,Grenada|ROSE HILL]]
*[[SALISBURY RD, SAUTEURS,St.Patrick,Grenada|SALISBURY RD, SAUTEURS]]
*[[SALISBURY STREET, SAUTEURS,St.Patrick,Grenada|SALISBURY STREET, SAUTEURS]]
*[[SAUTEURS,St.Patrick,Grenada|SAUTEURS]]
*[[THE VILLA, SAUTEURS,St.Patrick,Grenada|THE VILLA, SAUTEURS]]
== Uncategorized==
*[[ADAM'S ALLEY,,Grenada|ADAM'S ALLEY]]
*[[AFRICA,,Grenada|AFRICA]]
*[[APSLEY HILL,,Grenada|APSLEY HILL]]
*[[BLUGGO,,Grenada|BLUGGO]]
*[[BYWAY,,Grenada|BYWAY]]
*[[CELESTE,,Grenada|CELESTE]]
*[[CENTRAL DEPRADINE, GOUYAVE,,Grenada|CENTRAL DEPRADINE, GOUYAVE]]
*[[CHADDEAU,,Grenada|CHADDEAU]]
*[[CHANCERY STREET, MUNRO,,Grenada|CHANCERY STREET, MUNRO]]
*[[CHAPEL'S LANE,,Grenada|CHAPEL'S LANE]]
*[[CHURCH HILL ROAD,,Grenada|CHURCH HILL ROAD]]
*[[COOPER'S HILL,,Grenada|COOPER'S HILL]]
*[[CORNWALL STREET, SAUTEURS,,Grenada|CORNWALL STREET, SAUTEURS]]
*[[DE SILLES,,Grenada|DE SILLES]]
*[[DEHAR, GLEBE LAND,,Grenada|DEHAR, GLEBE LAND]]
*[[DOTHAN ESTATE,,Grenada|DOTHAN ESTATE]]
*[[DURRANT ROAD,,Grenada|DURRANT ROAD]]
*[[FENCE,,Grenada|FENCE]]
*[[FERGUSONS LANE, GOUYAVE,,Grenada|FERGUSONS LANE, GOUYAVE]]
*[[FIELD STREET,,Grenada|FIELD STREET]]
*[[FOUNTAIN,,Grenada|FOUNTAIN]]
*[[GLEBE LAND, SAUTEURS,,Grenada|GLEBE LAND, SAUTEURS]]
*[[GRAVEL STREET, VENDOME,,Grenada|GRAVEL STREET, VENDOME]]
*[[GROSS POINT VILLA,,Grenada|GROSS POINT VILLA]]
*[[HENRY STREET,,Grenada|HENRY STREET]]
*[[JONES ROAD,,Grenada|JONES ROAD]]
*[[LOWER CONFERENCE,,Grenada|LOWER CONFERENCE]]
*[[LOWER DEPRADINE, GOUYAVE,,Grenada|LOWER DEPRADINE, GOUYAVE]]
*[[LOWER LAURA,,Grenada|LOWER LAURA]]
*[[LYDER,,Grenada|LYDER]]
*[[MAHOUT, SAUTEURS,,Grenada|MAHOUT, SAUTEURS]]
*[[MAIN STREET, SAUTEURS,,Grenada|MAIN STREET, SAUTEURS]]
*[[MALIGNON,,Grenada|MALIGNON]]
*[[MARINE VILLA,,Grenada|MARINE VILLA]]
*[[MAUCHETTE,,Grenada|MAUCHETTE]]
*[[MC LAINE ALLEY, SAUTEURS,,Grenada|MC LAINE ALLEY, SAUTEURS]]
*[[MELROSE,,Grenada|MELROSE]]
*[[MT. ALEXANDER,,Grenada|MT. ALEXANDER]]
*[[MT. ANON,,Grenada|MT. ANON]]
*[[MT. CUMMA,,Grenada|MT. CUMMA]]
*[[MT. FELIX,,Grenada|MT. FELIX]]
*[[MT. PLASIR,,Grenada|MT. PLASIR]]
*[[MT. REUIL,,Grenada|MT. REUIL]]
*[[MT. RODNEY,,Grenada|MT. RODNEY]]
*[[MT. WILLIAMS,,Grenada|MT. WILLIAMS]]
*[[MUNRO STREET,,Grenada|MUNRO STREET]]
*[[MUNROE STREET, VICTORIA,,Grenada|MUNROE STREET, VICTORIA]]
*[[NETTLE POINT,,Grenada|NETTLE POINT]]
*[[NEW GARDENS,,Grenada|NEW GARDENS]]
*[[OTTLEY'S LANE,,Grenada|OTTLEY'S LANE]]
*[[PARK ESTATE,,Grenada|PARK ESTATE]]
*[[PENNY RETREAT,,Grenada|PENNY RETREAT]]
*[[SAMUELS AVENUE,,Grenada|SAMUELS AVENUE]]
*[[SAUTEURS, MAHOUT,,Grenada|SAUTEURS, MAHOUT]]
*[[SCHOOL LANE,,Grenada|SCHOOL LANE]]
*[[ST. BENOIT'S STREET,,Grenada|ST. BENOIT'S STREET]]
*[[ST. CYR,,Grenada|ST. CYR]]
*[[ST. DAVID STREET,,Grenada|ST. DAVID STREET]]
*[[ST. DOMINIC'S ST.,,Grenada|ST. DOMINIC'S ST.]]
*[[TAYBAKAY,,Grenada|TAYBAKAY]]
*[[TAYLOR,,Grenada|TAYLOR]]
*[[THE SUMMIT,,Grenada|THE SUMMIT]]
*[[THE VILLA, THE ROCK,,Grenada|THE VILLA, THE ROCK]]
*[[VINEYARD,,Grenada|VINEYARD]]
8e989c84a81e8e598a7c32399cf77db9b9efed37
182
181
2022-07-22T21:43:50Z
Wikiricky
1
/* St.Andrew */ added citations
wikitext
text/x-wiki
This is a list of populated villages, towns, settlements, and streets in Grenada. Many of the village names in Grenada are based upon the names of plantations. Grenada has 7 Parishes
==[[St.George,Grenada|St.George]]==
*[[ANNANDALE,St.George,Grenada|ANNANDALE]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/100 Annandale Estate - Legacies of British Slavery - UCL]</ref>
*[[ARCHIBALD AVENUE,St.George,Grenada|ARCHIBALD AVENUE]]
*[[BACK STREET, TEMPE,St.George,Grenada|BACK STREET, TEMPE]]
*[[BAIN'S ALLEY,St.George,Grenada|BAIN'S ALLEY]]
*[[BEAULIEU,St.George,Grenada|BEAULIEU]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1320 <nowiki>Beaulieu [ Grenada | St George ] - UCL</nowiki>]</ref>
*[[BELMONT,St.George,Grenada|BELMONT]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1290</ref>
*[[BLACK FOREST, VENDOME,St.George,Grenada|BLACK FOREST, VENDOME]]
*[[BLACKBURN ALLEY,St.George,Grenada|BLACKBURN ALLEY]]
*[[BOCA,St.George,Grenada|BOCA]]
*[[BON ACCORD ESTATE,St.George,Grenada|BON ACCORD ESTATE]]
*[[BOTANICAL GARDENS,St.George,Grenada|BOTANICAL GARDENS]]
*[[BRIGG'S ALLEY,St.George,Grenada|BRIGG'S ALLEY]]
*[[BRIZAN,St.George,Grenada|BRIZAN]]
*[[CAFE,St.George,Grenada|CAFE]]
*[[CALABASH ALLEY,St.George,Grenada|CALABASH ALLEY]]
*[[CALIVIGNY,St.George,Grenada|CALIVIGNY]]
*[[CALLISTE,St.George,Grenada|CALLISTE]]
*[[CARENAGE,St.George,Grenada|CARENAGE]]
*[[CARRIERE,St.George,Grenada|CARRIERE]]
*[[CEMETERY HILL,St.George,Grenada|CEMETERY HILL]]
*[[CHANTILLY, TEMPE,St.George,Grenada|CHANTILLY, TEMPE]]
*[[CHEMIN RIVER,St.George,Grenada|CHEMIN RIVER]]
*[[CHERRY HILL,St.George,Grenada|CHERRY HILL]]
*[[CHURCH STREET,St.George,Grenada|CHURCH STREET]]
*[[CIRCULAR DRIVE, FREQUENTE,St.George,Grenada|CIRCULAR DRIVE, FREQUENTE]]
*[[CLARKES COURT BAY,St.George,Grenada|CLARKES COURT BAY,]]
*[[COCOA ROAD, MARIAN,St.George,Grenada|COCOA ROAD, MARIAN]]
*[[CONFER,St.George,Grenada|CONFER]]
*[[CONSTANTINE,St.George,Grenada|CONSTANTINE]]
*[[CORBEAU TOWN,St.George,Grenada|CORBEAU TOWN]]
*[[COX ALLEY,St.George,Grenada|COX ALLEY]]
*[[CREIGHTON,St.George,Grenada|CREIGHTON]]
*[[CROSS STREET,St.George,Grenada|CROSS STREET]]
*[[D'ARBEAU,St.George,Grenada|D'ARBEAU]]
*[[DE FAUX,St.George,Grenada|DE FAUX]]
*[[DEPONTHIEU STREET,St.George,Grenada|DEPONTHIEU STREET]]
*[[DE VILLA, BLACKBURN ALLEY,St.George,Grenada|DE VILLA, BLACKBURN ALLEY]]
*[[DIXIE, SPRINGS,St.George,Grenada|DIXIE, SPRINGS]]
*[[DUSTY HIGHWAY, GRAND ANSE,St.George,Grenada|DUSTY HIGHWAY, GRAND ANSE]]
*[[EDGEMOND POINT,St.George,Grenada|EDGEMOND POINT]]
*[[FALL EDGE, GRAND ANSE,St.George,Grenada|FALL EDGE, GRAND ANSE]]
*[[FENTON VILLAGE,St.George,Grenada|FENTON VILLAGE]]
*[[FONTENOY,St.George,Grenada|FONTENOY]]
*[[FORT JUEDY,St.George,Grenada|FORT JUEDY]]
*[[FREQUENTE,St.George,Grenada|FREQUENTE]]
*[[GOLF COURSE,St.George,Grenada|GOLF COURSE]]
*[[GOOD HOPE,St.George,Grenada|GOOD HOPE]]
*[[GORE STREET,St.George,Grenada|GORE STREET]]
*[[GRAND ANSE,St.George,Grenada|GRAND ANSE]]
*[[GRAND ANSE ESTATE, LANCE AUX,St.George,Grenada|GRAND ANSE ESTATE, LANCE AUX]]
*[[GRAND ANSE HOUSING SCHEME,St.George,Grenada|GRAND ANSE HOUSING SCHEME]]
*[[GRAND ANSE VALLEY,St.George,Grenada|GRAND ANSE VALLEY]]
*[[GRAND ETANG ROAD,St.George,Grenada|GRAND ETANG ROAD]]
*[[GRAND MAL,St.George,Grenada|GRAND MAL]]
*[[GRANTON,St.George,Grenada|GRANTON]]
*[[GREEN STREET,St.George,Grenada|GREEN STREET]]
*[[GRENVILLE STREET,St.George,Grenada|GRENVILLE STREET]]
*[[GRENVILLE VALE,St.George,Grenada|GRENVILLE VALE]]
*[[GREY STONE, BELMONT,St.George,Grenada|GREY STONE, BELMONT]]
*[[H.A BLAIZE STREET,St.George,Grenada|H.A BLAIZE STREET]]
*[[HADDON SMITH STREET,St.George,Grenada|HADDON SMITH STREET]]
*[[HALIFAX STREET,St.George,Grenada|HALIFAX STREET]]
*[[HAPPY HILL,St.George,Grenada|HAPPY HILL]]
*[[HILL TOP, CALIVIGNY,St.George,Grenada|HILL TOP, CALIVIGNY]]
*[[HILLS ROAD,St.George,Grenada|HILLS ROAD]]
*[[HILLSBOROUGH STREET,St.George,Grenada|HILLSBOROUGH STREET]]
*[[HOPE VALE,St.George,Grenada|HOPE VALE]]
*[[INDEPENDENCE AVENUE,St.George,Grenada|INDEPENDENCE AVENUE]]
*[[JEAN ANGLIAS,St.George,Grenada|JEAN ANGLIAS]]
*[[JUMBIE,St.George,Grenada|JUMBIE]]
*[[KAFE BEAU HILL,St.George,Grenada|KAFE BEAU HILL]]
*[[LA BORIE,St.George,Grenada|LA BORIE]]
*[[LA MODE,St.George,Grenada|LA MODE]]
*[[LAGOON ROAD,St.George,Grenada|LAGOON ROAD]]
*[[LANCE AUX EPINES,St.George,Grenada|LANCE AUX EPINES]]
*[[LONG GUTTER,St.George,Grenada|LONG GUTTER]]
*[[LOWER MORNE JALOUX,St.George,Grenada|LOWER MORNE JALOUX]]
*[[LOWER WOBURN,St.George,Grenada|LOWER WOBURN]]
*[[LOWTHER'S LANE,St.George,Grenada|LOWTHER'S LANE]]
*[[LUCAS STREET,St.George,Grenada|LUCAS STREET]]
*[[MALONEY STREET,St.George,Grenada|MALONEY STREET]]
*[[MANGO, NEW HAMPSHIRE,St.George,Grenada|MANGO, NEW HAMPSHIRE]]
*[[MARIAN,St.George,Grenada|MARIAN]]
*[[MARKET HILL,St.George,Grenada|MARKET HILL]]
*[[MARRAST HILL,St.George,Grenada|MARRAST HILL]]
*[[MAURICE BISHOP HIGHWAY, GRAND ANSE,St.George,Grenada|MAURICE BISHOP HIGHWAY, GRAND ANSE]]
*[[MAURICE BISHOP HWY, GRAND,St.George,Grenada|MAURICE BISHOP HWY, GRAND]]
*[[MELVILLE STREET,St.George,Grenada|MELVILLE STREET]]
*[[MOLINIERE,St.George,Grenada|MOLINIERE]]
*[[MONT TOUTE,St.George,Grenada|MONT TOUTE]]
*[[MORNE JALOUX,St.George,Grenada|MORNE JALOUX]]
*[[MORNE ROUGE,St.George,Grenada|MORNE ROUGE]]
*[[MORTLEY ROAD,St.George,Grenada|MORTLEY ROAD]]
*[[MT. AIRY,St.George,Grenada|MT. AIRY]]
*[[MT. GAY,St.George,Grenada|MT. GAY]]
*[[MT. HARTMAN,St.George,Grenada|MT. HARTMAN]]
*[[MT. MORITZ,St.George,Grenada|MT. MORITZ]]
*[[MT. PARNASSUS,St.George,Grenada|MT. PARNASSUS]]
*[[MT. RUSH,St.George,Grenada|MT. RUSH]]
*[[MT. WHELDALE,St.George,Grenada|MT. WHELDALE]]
*[[OBSERVATORY ROAD,St.George,Grenada|OBSERVATORY ROAD]]
*[[OLD FORT,St.George,Grenada|OLD FORT]]
*[[PADDOCK,St.George,Grenada|PADDOCK]]
*[[PARADE,St.George,Grenada|PARADE]]
*[[PARK LANE,St.George,Grenada|PARK LANE]]
*[[PERSEVERANCE,St.George,Grenada|PERSEVERANCE]]
*[[PETERSFIELD,St.George,Grenada|PETERSFIELD]]
*[[POINT SALINES,St.George,Grenada|POINT SALINES]]
*[[QUEEN'S PARK,St.George,Grenada|QUEEN'S PARK]]
*[[RADIX, MT. PARNASSUS,St.George,Grenada|RADIX, MT. PARNASSUS]]
*[[RAVINE, MT. GAY,St.George,Grenada|RAVINE, MT. GAY]]
*[[RICHMOND HILL,St.George,Grenada|RICHMOND HILL]]
*[[RIVER ROAD,St.George,Grenada|RIVER ROAD]]
*[[ROEBUCK,St.George,Grenada|ROEBUCK]]
*[[SANS SOUCI,St.George,Grenada|SANS SOUCI]]
*[[SCOTT STREET,St.George,Grenada|SCOTT STREET]]
*[[SHENDA,St.George,Grenada|SHENDA]]
*[[SIMMONS STREET,St.George,Grenada|SIMMONS STREET]]
*[[SNUG CORNER,St.George,Grenada|SNUG CORNER]]
*[[SPRINGS,St.George,Grenada|SPRINGS]]
*[[ST. GEORGE ESTATE,St.George,Grenada|ST. GEORGE ESTATE]]
*[[ST. JOHN STREET,St.George,Grenada|ST. JOHN STREET]]
*[[ST. JUILLE STREET,St.George,Grenada|ST. JUILLE STREET]]
*[[ST.PAUL'S,St.George,Grenada|ST.PAUL'S]]
*[[SUNSET VALLEY, POINT SALINES,St.George,Grenada|SUNSET VALLEY, POINT SALINES]]
*[[TANTEEN, TANTEEN TERRACE,St.George,Grenada|TANTEEN, TANTEEN TERRACE]]
*[[TEMPE,St.George,Grenada|TEMPE]]
*[[TETMUND,St.George,Grenada|TETMUND]]
*[[THE BOCAS,St.George,Grenada|THE BOCAS]]
*[[THE GREENS,St.George,Grenada|THE GREENS]]
*[[THE LIMES,St.George,Grenada|THE LIMES]]
*[[THE STONES, GRAND ANSE,St.George,Grenada|THE STONES, GRAND ANSE]]
*[[THE STONES, NEW HAMPSHIRE,St.George,Grenada|THE STONES, NEW HAMPSHIRE]]
*[[THE VILLA, LONG GUTTER,St.George,Grenada|THE VILLA, LONG GUTTER]]
*[[TRANQUIL LANE,St.George,Grenada|TRANQUIL LANE]]
*[[TRUE BLUE,St.George,Grenada|TRUE BLUE]]
*[[TRYNE ALLEY,St.George,Grenada|TRYNE ALLEY]]
*[[TURTLE BACK DRIVE, LANCE AUX,St.George,Grenada|TURTLE BACK DRIVE, LANCE AUX]]
*[[TYRREL STREET,St.George,Grenada|TYRREL STREET]]
*[[UPPER MORNE JALOUX,St.George,Grenada|UPPER MORNE JALOUX]]
*[[UPPER WOBURN,St.George,Grenada|UPPER WOBURN]]
*[[VENDOME,St.George,Grenada|VENDOME]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1287</ref>
*[[WELCOME,St.George,Grenada|WELCOME]]
*[[WHITE GUN,St.George,Grenada|WHITE GUN]]
*[[WHITE HALL, PARK LANE,St.George,Grenada|WHITE HALL, PARK LANE]]
*[[WILLIAMSON ROAD,St.George,Grenada|WILLIAMSON ROAD]]
*[[WILLIS,St.George,Grenada|WILLIS]]
*[[WOODLANDS,St.George,Grenada|WOODLANDS]]
*[[WOOLWICH ROAD,St.George,Grenada|WOOLWICH ROAD]]
*[[YOUNG STREET,St.George,Grenada|YOUNG STREET]]
==[[St.John,Grenada|St.John]]==
*[[BACK STREET,St.John,Grenada|BACK STREET]]
*[[BELVIDERE,St.John,Grenada|BELVIDERE]]
*[[BLACK BAY,St.John,Grenada|BLACK BAY]]
*[[BOYKES LANE, GOUYAVE,St.John,Grenada|BOYKES LANE, GOUYAVE]]
*[[BROOKLYN,St.John,Grenada|BROOKLYN]]
*[[BROTHERS ESTATE,St.John,Grenada|BROTHERS ESTATE]]
*[[CENTRAL DEPRADINE STREET,St.John,Grenada|CENTRAL DEPRADINE STREET]]
*[[CLOZIER,St.John,Grenada|CLOZIER]]
*[[CONCORD,St.John,Grenada|CONCORD]]
*[[CORNETS WALK, GOUYAVE,St.John,Grenada|CORNETS WALK, GOUYAVE]]
*[[COTTON BAILY,St.John,Grenada|COTTON BAILY]]
*[[D LANCE, UPPER DEPRADINE,St.John,Grenada|D LANCE, UPPER DEPRADINE]]
*[[DOCTOR BELLE,St.John,Grenada|DOCTOR BELLE]]
*[[DOUGALDSTON,St.John,Grenada|DOUGALDSTON]]
*[[EDWARD STREET, GOUYAVE,St.John,Grenada|EDWARD STREET, GOUYAVE]]
*[[FERGUSON'S LANE,St.John,Grenada|FERGUSON'S LANE]]
*[[FLORIDA,St.John,Grenada|FLORIDA]]
*[[GOUYAVE ESTATE,St.John,Grenada|GOUYAVE ESTATE]]
*[[GRAND ROY,St.John,Grenada|GRAND ROY]]
*[[HILLSVIEW, GOUYAVE,St.John,Grenada|HILLSVIEW, GOUYAVE]]
*[[LANGTON ROAD, GOUYAVE,St.John,Grenada|LANGTON ROAD, GOUYAVE]]
*[[LOWER DEPRADINE STREET,St.John,Grenada|LOWER DEPRADINE STREET]]
*[[MARIGOT,St.John,Grenada|MARIGOT]]
*[[MITCHELL'S LANE,St.John,Grenada|MITCHELL'S LANE]]
*[[MONGO ROAD, GOUYAVE ESTATE,St.John,Grenada|MONGO ROAD, GOUYAVE ESTATE]]
*[[MT. GRANBY,St.John,Grenada|MT. GRANBY]]
*[[MT. NESBIT,St.John,Grenada|MT. NESBIT]]
*[[NEW STREET, EDWARD STREET,St.John,Grenada|NEW STREET, EDWARD STREET]]
*[[NEW STREET, GOUYAVE,St.John,Grenada|NEW STREET, GOUYAVE]]
*[[PALMISTE,St.John,Grenada|PALMISTE]]
*[[QUEEN STREET, ST. JOHN'S,St.John,Grenada|QUEEN STREET, ST. JOHN'S]]
*[[RENNIE,St.John,Grenada|RENNIE]]
*[[RIVER LANE, GOUYAVE ESTATE,St.John,Grenada|RIVER LANE, GOUYAVE ESTATE]]
*[[RIVER LANE, GOUYAVE,St.John,Grenada|RIVER LANE, GOUYAVE]]
*[[ROSEMOUNT,St.John,Grenada|ROSEMOUNT]]
*[[SCHOOL LANE, GOUYAVE,St.John,Grenada|SCHOOL LANE, GOUYAVE]]
*[[ST BENOIT STREET, GOUYAVE,St.John,Grenada|ST BENOIT STREET, GOUYAVE]]
*[[ST DOMINIC STREET, GOUYAVE,St.John,Grenada|ST DOMINIC STREET, GOUYAVE]]
*[[ST DOMINIC, GOUYAVE,St.John,Grenada|ST DOMINIC, GOUYAVE]]
*[[ST FRANCIS, GOUYAVE,St.John,Grenada|ST FRANCIS, GOUYAVE]]
*[[ST PETERS STREET, GOUYAVE,St.John,Grenada|ST PETERS STREET, GOUYAVE]]
*[[ST PETERS, GOUYAVE,St.John,Grenada|ST PETERS, GOUYAVE]]
*[[ST. FRANCIS STREET,St.John,Grenada|ST. FRANCIS STREET]]
*[[ST. PETER STREET,St.John,Grenada|ST. PETER STREET]]
*[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]]
*[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]]
*[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]]
*[[UPPER DEPRADINE STREET,St.John,Grenada|UPPER DEPRADINE STREET]]
*[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]]
*[[VICTORIA ROAD, GOUYAVE,St.John,Grenada|VICTORIA ROAD, GOUYAVE]]
*[[VICTORIA STREET,St.John,Grenada|VICTORIA STREET]]
*[[WATERLOO,St.John,Grenada|WATERLOO]]
*[[WOODFORD,St.John,Grenada|WOODFORD]]
==[[St.David,Grenada|St.David]]==
*[[APRES TOUTE,St.David,Grenada|APRES TOUTE]]
*[[BAILLES BACOLET,St.David,Grenada|BAILLES BACOLET]]
*[[BEATON,St.David,Grenada|BEATON]]
*[[BELLE ISLE,St.David,Grenada|BELLE ISLE]]
*[[BELLE VUE,St.David,Grenada|BELLE VUE]]
*[[BOCAGE,St.David,Grenada|BOCAGE]]
*[[CHAMPFLEURS,St.David,Grenada|CHAMPFLEURS]]
*[[COALS GAPS,St.David,Grenada|COALS GAPS]]
*[[CONTENT,St.David,Grenada|CONTENT]]
*[[CORINTH,St.David,Grenada|CORINTH]]
*[[DUDMAR,St.David,Grenada|DUDMAR]]
*[[EPPIN FOREST,St.David,Grenada|EPPIN FOREST]]
*[[HARMONY HALL,St.David,Grenada|HARMONY HALL]]
*[[LA CALOHME,St.David,Grenada|LA CALOHME]]
*[[LA FEMME,St.David,Grenada|LA FEMME]]
*[[LA FLORETTA,St.David,Grenada|LA FLORETTA]]
*[[LA PASTORA,St.David,Grenada|LA PASTORA]]
*[[LA SAGESSE,St.David,Grenada|LA SAGESSE]]
*[[LA TANTE,St.David,Grenada|LA TANTE]]
*[[MARLMOUNT,St.David,Grenada|MARLMOUNT]]
*[[MARDIGRAS,St.David,Grenada|MARDIGRAS]]
*[[MARLMOUNT, GLEBE LAND,St.David,Grenada|MARLMOUNT, GLEBE LAND]]
*[[MAULTY,St.David,Grenada|MAULTY]]
*[[MAYANN, CONSTANTINE,St.David,Grenada|MAYANN, CONSTANTINE]]
*[[MINORCA,St.David,Grenada|MINORCA]]
*[[MORNE DELICE,St.David,Grenada|MORNE DELICE]]
*[[MON REPOS,St.David,Grenada|MON REPOS]]
*[[MT. AGNES,St.David,Grenada|MT. AGNES]]
*[[MT. DISIRE,St.David,Grenada|MT. DISIRE]]
*[[MT. ROSE,St.David,Grenada|MT. ROSE]]
*[[MYANN, CONSTANTINE,St.David,Grenada|MYANN, CONSTANTINE]]
*[[NEW WESTERHALL,St.David,Grenada|NEW WESTERHALL]]
*[[OLD WESTERHALL,St.David,Grenada|OLD WESTERHALL]]
*[[PERDMONTEMPS,St.David,Grenada|PERDMONTEMPS]]
*[[PETITE BACAYE, NEW,St.David,Grenada|PETITE BACAYE, NEW]]
*[[PETITE ESPERANCE,St.David,Grenada|PETITE ESPERANCE]]
*[[PETITE ETANG,St.David,Grenada|PETITE ETANG]]
*[[POMME ROSE,St.David,Grenada|POMME ROSE]]
*[[RED GATE,St.David,Grenada|RED GATE]]
*[[REDMUD,St.David,Grenada|REDMUD]]
*[[REQUIN,St.David,Grenada|REQUIN]]
*[[SLINGER STREET,St.David,Grenada|SLINGER STREET]]
*[[SYRACUSE,St.David,Grenada|SYRACUSE]]
*[[THEBAIDE,St.David,Grenada|THEBAIDE]]
*[[TABOR,St.David,Grenada|TABOR]]
*[[UPPER LAURA,St.David,Grenada|UPPER LAURA]]
*[[VINCENNES,St.David,Grenada|VINCENNES]]
*[[WESTERHALL POINT,St.David,Grenada|WESTERHALL POINT]]
*[[WINDSOR,St.David,Grenada|WINDSOR]]
*[[WINDSOR FOREST,St.David,Grenada|WINDSOR FOREST]]
==[[Carriacou and Petite Martinique,Grenada|Carriacou and Petite Martinique]]==
*[[BAYALEAU,Carriacou,Grenada|BAYALEAU]]
*[[BEAUSEJOUR,Carriacou,Grenada|BEAUSEJOUR]]
*[[BELAIR,Carriacou,Grenada|BELAIR]]
*[[BELLE VUE,Carriacou,Grenada|BELLE VUE]]
*[[BELMONT,Carriacou,Grenada|BELMONT]]
*[[BOGLES,Carriacou,Grenada|BOGLES]]
*[[BRUNSWICK,Carriacou,Grenada|BRUNSWICK]]
*[[CHURCH STREET, HILLSBOROUGH,Carriacou,Grenada|CHURCH STREET, HILLSBOROUGH]]
*[[CRAIGSTON,Carriacou,Grenada|CRAIGSTON]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1385]</ref>
*[[CHERRY HILL,Carriacou,Grenada|CHERRY HILL]]
*[[DOVER,Carriacou,Grenada|DOVER]]
*[[DUMFRIES,Carriacou,Grenada|DUMFRIES]]
*[[GRAND BAY,Carriacou,Grenada|GRAND BAY]]
*[[HARVEY VALE,Carriacou,Grenada|HARVEY VALE]]
*[[HERMITAGE,Carriacou,Grenada|HERMITAGE]]
*[[HILLSBOROUGH,Carriacou,Grenada|HILLSBOROUGH]]
*[[L'ESTERRE,Carriacou,Grenada|L'ESTERRE]]
*[[LAURISTON,Carriacou,Grenada|LAURISTON]]
*[[LIMLAIR,Carriacou,Grenada|LIMLAIR]]
*[[MELDRUM,Carriacou,Grenada|MELDRUM]]
*[[MT. DISIRE,Carriacou,Grenada|MT. DISIRE]]
*[[MT. PLEASANT,Carriacou,Grenada|MT. PLEASANT]]
*[[MT. ST ERVANS, L'ESTERRIE,Carriacou,Grenada|MT ST ERVANS, L'ESTERRIE]]
*[[MT. ROYAL,Carriacou,Grenada|MT. ROYAL]]
*[[PROSPECT HALL,Carriacou,Grenada|PROSPECT HALL]]
*[[SIX ROADS,Carriacou,Grenada|SIX ROADS]]
*[[TOP HILL,Carriacou,Grenada|TOP HILL]]
*[[WINDWARD,Carriacou,Grenada|WINDWARD]]
*[[PETITE MARTINIQUE,PETIT MARTINIQUE,Grenada|PETITE MARTINIQUE]]
==[[St.Andrew,Grenada|St.Andrew]]==
*[[MT. FANN,St. Andrew,Grenada|MT. FANN]]
*[[ADELPHI,St.Andrew,Grenada|ADELPHI]]
*[[AHOMA,St.Andrew,Grenada|AHOMA]]
*[[BALTHAZAR,St.Andrew,Grenada|BALTHAZAR]]
*[[BAYROAD,St.Andrew,Grenada|BAYROAD]]
*[[BLAIZE,St.Andrew,Grenada|BLAIZE]]
*[[BAMBOO,St.Andrew,Grenada|BAMBOO]]
*[[BATTLE HILL,St.Andrew,Grenada|BATTLE HILL]]
*[[BEAUREGARD,St.Andrew,Grenada|BEAUREGARD]]
*[[BELLE VUE,St.Andrew,Grenada|BELLE VUE]]
*[[BELVEDERE,St.Andrew,Grenada|BELVEDERE]]
*[[BEN JONES STREET,St.Andrew,Grenada|BEN JONES STREET]]
*[[BIRCHGROVE,St.Andrew,Grenada|BIRCHGROVE]]
*[[BYELANDS,St.Andrew,Grenada|BYELANDS]]
*[[CAFE,St.Andrew,Grenada|CAFE]]
*[[CANAL ROAD,St.Andrew,Grenada|CANAL ROAD]]
*[[CARRIERE,St.Andrew,Grenada|CARRIERE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1305</ref>
*[[CARRUTH,St.Andrew,Grenada|CARRUTH]]
*[[CASTIGNE,St.Andrew,Grenada|CASTIGNE]]
*[[CHAPEL ROAD,St.Andrew,Grenada|CHAPEL ROAD]]
*[[COCOA ROAD,St.Andrew,Grenada|COCOA ROAD]]
*[[CODRONA,St.Andrew,Grenada|CODRONA]]
*[[CONFERENCE,St.Andrew,Grenada|CONFERENCE]]
*[[COOKHILL ROAD,St.Andrew,Grenada|COOKHILL ROAD]]
*[[CROCHU,St.Andrew,Grenada|CROCHU]]
*[[DE BLANDEAU,St.Andrew,Grenada|DE BLANDEAU]]
*[[DUNFERMLINE,St.Andrew,Grenada|DUNFERMLINE]]
*[[DURRANT ROAD,St.Andrew,Grenada|DURRANT ROAD]]
*[[FORD HILL ROAD,St.Andrew,Grenada|FORD HILL ROAD]]
*[[FELIX PARK,St.Andrew,Grenada|FELIX PARK]]
*[[GRANLETTE,St.Andrew,Grenada|GRANLETTE]]
*[[GEORGE V. STREET,St.Andrew,Grenada|GEORGE V. STREET]]
*[[GLADSTONE ROAD,St.Andrew,Grenada|GLADSTONE ROAD]]
*[[GOUYAVE,St.Andrew,Grenada|GOUYAVE]]
*[[GRAND BACOLET,St.Andrew,Grenada|GRAND BACOLET]]
*[[GRAND BRAS,St.Andrew,Grenada|GRAND BRAS]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1303</ref>
*[[GRIFFIN LANE,St.Andrew,Grenada|GRIFFIN LANE]]
*[[GUPO,St.Andrew,Grenada|GUPO]]
*[[HARFORD VILLAGE,St.Andrew,Grenada|HARFORD VILLAGE]]
*[[HERMON,St.Andrew,Grenada|HERMON]]
*[[HILLS ROAD, LOWER,St.Andrew,Grenada|HILLS ROAD]]
*[[HOPE,St.Andrew,Grenada|HOPE]]
*[[HOPE CITY,St.Andrew,Grenada|HOPE CITY]]
*[[LA DIGUE,St.Andrew,Grenada|LA DIGUE]]
*[[LA FILLETTE,St.Andrew,Grenada|LA FILLETTE]]
*[[LA POTERIE,St.Andrew,Grenada|LA POTERIE]]
*[[L'ESTERRIE,St.Andrew,Grenada|L'ESTERRIE]]
*[[LOWER CAPITOL,St.Andrew,Grenada|LOWER CAPITOL]]
*[[LOWER HARFORD VILLAGE,St.Andrew,Grenada|LOWER HARFORD VILLAGE]]
*[[MAHOUT,St.Andrew,Grenada|MAHOUT]]
*[[MAMMA CANNES,St.Andrew,Grenada|MAMMA CANNES]]
*[[MARQUIS,St.Andrew,Grenada|MARQUIS]]
*[[MC NELLIE ALLEY, SAUTEURS,St.Andrew,Grenada|MC NELLIE ALLEY, SAUTEURS]]
*[[MC NEILLY, SAUTEURS,St.Andrew,Grenada|MC NEILLY, SAUTEURS]]
*[[MEADOW,St.Andrew,Grenada|MEADOW]]
*[[MELDRUM,St.Andrew,Grenada|MELDRUM]]
*[[MIRABEAU,St.Andrew,Grenada|MIRABEAU]]
*[[MORNE LOUNGE,St.Andrew,Grenada|MORNE LOUNGE]]
*[[MOYAH,St.Andrew,Grenada|MOYAH]]
*[[MT. ST ERVANS, LA DIGUE,St.Andrew,Grenada|MT ST ERVANS, LA DIGUE]]
*[[MT. CARMEL,St.Andrew,Grenada|MT. CARMEL]]
*[[MT. HORNE,St.Andrew,Grenada|MT. HORNE]]
*[[MT. PLEASANT,St.Andrew,Grenada|MT. PLEASANT]]
*[[MT. SEALEY,St.Andrew,Grenada|MT. SEALEY]]
*[[MUNICH,St.Andrew,Grenada|MUNICH]]
*[[NEW HAMPSHIRE,St.Andrew,Grenada|NEW HAMPSHIRE]]
*[[NOELSVILLE,St.Andrew,Grenada|NOELSVILLE]]
*[[PARACLETE,St.Andrew,Grenada|PARACLETE]]
*[[PARADISE,St.Andrew,Grenada|PARADISE]]
*[[PEARLS,St.Andrew,Grenada|PEARLS]]
*[[PLATEAU,St.Andrew,Grenada|PLATEAU]]
*[[PLEASANCE,St.Andrew,Grenada|PLEASANCE]]
*[[POST ROYAL,St.Andrew,Grenada|POST ROYAL]]
*[[PROVIDENCE,St.Andrew,Grenada|PROVIDENCE]]
*[[RETREAT,St.Andrew,Grenada|RETREAT]]
*[[RICHMOND,St.Andrew,Grenada|RICHMOND]]
*[[RIVULET LANE,St.Andrew,Grenada|RIVULET LANE]]
*[[SABB,St.Andrew,Grenada|SABB]]
*[[SALISBURY ROAD,St.Andrew,Grenada|SALISBURY ROAD]]
*[[SAMUEL AVENUE, CALIVIGNY,St.Andrew,Grenada|SAMUEL AVENUE, CALIVIGNY]]
*[[SEATON BROWNE STREET,St.Andrew,Grenada|SEATON BROWNE STREET]]
*[[SEATON JAMES STREET,St.Andrew,Grenada|SEATON JAMES STREET]]
*[[SENDALL STREET,St.Andrew,Grenada|SENDALL STREET]]
*[[SIMON,St.Andrew,Grenada|SIMON]]
*[[SNELL HALL,St.Andrew,Grenada|SNELL HALL]]
*[[SOUBISE,St.Andrew,Grenada|SOUBISE]]
*[[SPRING GARDEN,St.Andrew,Grenada|SPRING GARDEN]]
*[[ST. CLOUDS,St.Andrew,Grenada|ST. CLOUDS]]
*[[ST. JAMES,St.Andrew,Grenada|ST. JAMES]]
*[[ST. JOHNS,St.Andrew,Grenada|ST. JOHNS]]
*[[TOUS CONGO,St.Andrew,Grenada|TOUS CONGO]]
*[[TELESCOPE,St.Andrew,Grenada|TELESCOPE]]
*[[TIVOLI,St.Andrew,Grenada|TIVOLI]]
*[[TUILLIERIES,St.Andrew,Grenada|TUILLIERIES]]
*[[UNION,St.Andrew,Grenada|UNION]]
*[[UPPER CAPITOL,St.Andrew,Grenada|UPPER CAPITOL]]
*[[THE VILLA,St.Andrew,Grenada|THE VILLA]]
*[[VILLAGE ROAD,St.Andrew,Grenada|VILLAGE ROAD]]
*[[VICTORIA STREET,St.Andrew,Grenada|VICTORIA STREET]]
*[[WALKER,St.Andrew,Grenada|WALKER]]
*[[WELLS ROAD,St.Andrew,Grenada|WELLS ROAD]]
==[[St.Mark,Grenada|St.Mark]]==
*[[BOCAGE,St.Mark,Grenada|BOCAGE]]
*[[BOCAGE, BONAIR,St.Mark,Grenada|BOCAGE, BONAIR]]
*[[BONAIR,St.Mark,Grenada|BONAIR]]
*[[BONIAR ROAD, BONAIR,St.Mark,Grenada|BONIAR ROAD, BONAIR]]
*[[CHARLOTTE VALE,St.Mark,Grenada|CHARLOTTE VALE]]
*[[COAST GUARD,St.Mark,Grenada|COAST GUARD]]
*[[CRUICKSHANK ROAD,St.Mark,Grenada|CRUICKSHANK ROAD]]
*[[CRUICKSHANK ROAD, VICTORIA,St.Mark,Grenada|CRUICKSHANK ROAD, VICTORIA]]
*[[DARVEY,St.Mark,Grenada|DARVEY]]
*[[DE VILLA,St.Mark,Grenada|DE VILLA]]
*[[DIAMOND ESTATE,St.Mark,Grenada|DIAMOND ESTATE]]
*[[DIAMOND STREET, VICTORIA,St.Mark,Grenada|DIAMOND STREET, VICTORIA]]
*[[DIEGO PIECE,St.Mark,Grenada|DIEGO PIECE]]
*[[DUQUESNE,St.Mark,Grenada|DUQUESNE]]
*[[FAIR FIELD ROAD, VICTORIA,St.Mark,Grenada|FAIR FIELD ROAD, VICTORIA]]
*[[GALL STREET, VICTORIA,St.Mark,Grenada|GALL STREET, VICTORIA]]
*[[GROSS POINT, GROSS POINT VILLA,St.Mark,Grenada|GROSS POINT, GROSS POINT VILLA]]
*[[INDUSTRY,St.Mark,Grenada|INDUSTRY]]
*[[LA RESOURCE,St.Mark,Grenada|LA RESOURCE]]
*[[MARAN,St.Mark,Grenada|MARAN]]
*[[MT. EDGECOMBE,St.Mark,Grenada|MT. EDGECOMBE]]
*[[MUNRO STREET, VICTORIA,St.Mark,Grenada|MUNRO STREET, VICTORIA]]
*[[NON-PARIEL,St.Mark,Grenada|NON-PARIEL]]
*[[PETIT BOCAGE,St.Mark,Grenada|PETIT BOCAGE]]
*[[QUEEN STREET, VICTORIA,St.Mark,Grenada|QUEEN STREET, VICTORIA]]
*[[RESOURCE,St.Mark,Grenada|RESOURCE]]
*[[RESOURCE, RESOURCE,St.Mark,Grenada|RESOURCE, RESOURCE]]
*[[RIVER SALLEE,St.Mark,Grenada|RIVER SALLEE]]
*[[SAMARITAN,St.Mark,Grenada|SAMARITAN]]
*[[SAMARITAN, DIEGO PIECE,St.Mark,Grenada|SAMARITAN, DIEGO PIECE]]
*[[ST DAVID STREET, VICTORIA,St.Mark,Grenada|ST DAVID STREET, VICTORIA]]
*[[ST JOHN STREET, VICTORIA,St.Mark,Grenada|ST JOHN STREET, VICTORIA]]
*[[STEWAD COTTAGE,St.Mark,Grenada|STEWAD COTTAGE]]
*[[VICTORIA,St.Mark,Grenada|VICTORIA]]
*[[WALTHAM,St.Mark,Grenada|WALTHAM]]
==[[St.Patrick,Grenada|St.Patrick]]==
*[[BATHWAY,St.Patrick,Grenada|BATHWAY]]
*[[BAY ROAD, SAUTEURS,St.Patrick,Grenada|BAY ROAD, SAUTEURS]]
*[[BELMONT,St.Patrick,Grenada|BELMONT]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1317</ref>
*[[CEDARS,St.Patrick,Grenada|CEDARS]]
*[[CHANTIMELLE,St.Patrick,Grenada|CHANTIMELLE]]
*[[CROSS STREET, SAUTEURS,St.Patrick,Grenada|CROSS STREET, SAUTEURS]]
*[[GLEBE LAND, SAUTEURS,St.Patrick,Grenada|GLEBE LAND, SAUTEURS]]
*[[GLEBE STREET, SAUTEURS,St.Patrick,Grenada|GLEBE STREET, SAUTEURS]]
*[[HERMITAGE,St.Patrick,Grenada|HERMITAGE]]
*[[HIGH GATE, MORNE FENDUE,St.Patrick,Grenada|HIGH GATE, MORNE FENDUE]]
*[[HIGH STREET, SAUTEURS,St.Patrick,Grenada|HIGH STREET, SAUTEURS]]
*[[HILL STREET, SAUTEURS,St.Patrick,Grenada|HILL STREET, SAUTEURS]]
*[[LA FORTUNE,St.Patrick,Grenada|LA FORTUNE]]
*[[LA TASTE,St.Patrick,Grenada|LA TASTE]]
*[[LEVERA,St.Patrick,Grenada|LEVERA]]
*[[MADEYS,St.Patrick,Grenada|MADEYS]]
*[[MAHOUT, ROSE HILL,St.Patrick,Grenada|MAHOUT, ROSE HILL]]
*[[MAIN STREET, SAUTEURS,St.Patrick,Grenada|MAIN STREET, SAUTEURS]]
*[[MARLI,St.Patrick,Grenada|MARLI]]
*[[MC NEILLY ALLEY, MARLI,St.Patrick,Grenada|MC NEILLY ALLEY, MARLI]]
*[[MC NELLIE ALLEY, SAUTEURS,St.Patrick,Grenada|MC NELLIE ALLEY, SAUTEURS]]
*[[MORNE FENDUE,St.Patrick,Grenada|MORNE FENDUE]]
*[[MT. CRAVEN,St.Patrick,Grenada|MT. CRAVEN]]
*[[MT. RICH,St.Patrick,Grenada|MT. RICH]]
*[[MT. ROSE,St.Patrick,Grenada|MT. ROSE]]
*[[PEGGYS WHIM, HERMITAGE,St.Patrick,Grenada|PEGGYS WHIM, HERMITAGE]]
*[[PLAINS,St.Patrick,Grenada|PLAINS]]
*[[POINTZFIELD,St.Patrick,Grenada|POINTZFIELD]]
*[[PROSPECT,St.Patrick,Grenada|PROSPECT]]
*[[RED HEAD STREET, LA FORTUNE,St.Patrick,Grenada|RED HEAD STREET, LA FORTUNE]]
*[[RED HEAD STREET, SAUTEURS,St.Patrick,Grenada|RED HEAD STREET, SAUTEURS]]
*[[RED MUD,St.Patrick,Grenada|RED MUD]]
*[[RIVER SALLEE,St.Patrick,Grenada|RIVER SALLEE]]
*[[ROSE HILL,St.Patrick,Grenada|ROSE HILL]]
*[[SALISBURY RD, SAUTEURS,St.Patrick,Grenada|SALISBURY RD, SAUTEURS]]
*[[SALISBURY STREET, SAUTEURS,St.Patrick,Grenada|SALISBURY STREET, SAUTEURS]]
*[[SAUTEURS,St.Patrick,Grenada|SAUTEURS]]
*[[THE VILLA, SAUTEURS,St.Patrick,Grenada|THE VILLA, SAUTEURS]]
== Uncategorized==
*[[ADAM'S ALLEY,,Grenada|ADAM'S ALLEY]]
*[[AFRICA,,Grenada|AFRICA]]
*[[APSLEY HILL,,Grenada|APSLEY HILL]]
*[[BLUGGO,,Grenada|BLUGGO]]
*[[BYWAY,,Grenada|BYWAY]]
*[[CELESTE,,Grenada|CELESTE]]
*[[CENTRAL DEPRADINE, GOUYAVE,,Grenada|CENTRAL DEPRADINE, GOUYAVE]]
*[[CHADDEAU,,Grenada|CHADDEAU]]
*[[CHANCERY STREET, MUNRO,,Grenada|CHANCERY STREET, MUNRO]]
*[[CHAPEL'S LANE,,Grenada|CHAPEL'S LANE]]
*[[CHURCH HILL ROAD,,Grenada|CHURCH HILL ROAD]]
*[[COOPER'S HILL,,Grenada|COOPER'S HILL]]
*[[CORNWALL STREET, SAUTEURS,,Grenada|CORNWALL STREET, SAUTEURS]]
*[[DE SILLES,,Grenada|DE SILLES]]
*[[DEHAR, GLEBE LAND,,Grenada|DEHAR, GLEBE LAND]]
*[[DOTHAN ESTATE,,Grenada|DOTHAN ESTATE]]
*[[DURRANT ROAD,,Grenada|DURRANT ROAD]]
*[[FENCE,,Grenada|FENCE]]
*[[FERGUSONS LANE, GOUYAVE,,Grenada|FERGUSONS LANE, GOUYAVE]]
*[[FIELD STREET,,Grenada|FIELD STREET]]
*[[FOUNTAIN,,Grenada|FOUNTAIN]]
*[[GLEBE LAND, SAUTEURS,,Grenada|GLEBE LAND, SAUTEURS]]
*[[GRAVEL STREET, VENDOME,,Grenada|GRAVEL STREET, VENDOME]]
*[[GROSS POINT VILLA,,Grenada|GROSS POINT VILLA]]
*[[HENRY STREET,,Grenada|HENRY STREET]]
*[[JONES ROAD,,Grenada|JONES ROAD]]
*[[LOWER CONFERENCE,,Grenada|LOWER CONFERENCE]]
*[[LOWER DEPRADINE, GOUYAVE,,Grenada|LOWER DEPRADINE, GOUYAVE]]
*[[LOWER LAURA,,Grenada|LOWER LAURA]]
*[[LYDER,,Grenada|LYDER]]
*[[MAHOUT, SAUTEURS,,Grenada|MAHOUT, SAUTEURS]]
*[[MAIN STREET, SAUTEURS,,Grenada|MAIN STREET, SAUTEURS]]
*[[MALIGNON,,Grenada|MALIGNON]]
*[[MARINE VILLA,,Grenada|MARINE VILLA]]
*[[MAUCHETTE,,Grenada|MAUCHETTE]]
*[[MC LAINE ALLEY, SAUTEURS,,Grenada|MC LAINE ALLEY, SAUTEURS]]
*[[MELROSE,,Grenada|MELROSE]]
*[[MT. ALEXANDER,,Grenada|MT. ALEXANDER]]
*[[MT. ANON,,Grenada|MT. ANON]]
*[[MT. CUMMA,,Grenada|MT. CUMMA]]
*[[MT. FELIX,,Grenada|MT. FELIX]]
*[[MT. PLASIR,,Grenada|MT. PLASIR]]
*[[MT. REUIL,,Grenada|MT. REUIL]]
*[[MT. RODNEY,,Grenada|MT. RODNEY]]
*[[MT. WILLIAMS,,Grenada|MT. WILLIAMS]]
*[[MUNRO STREET,,Grenada|MUNRO STREET]]
*[[MUNROE STREET, VICTORIA,,Grenada|MUNROE STREET, VICTORIA]]
*[[NETTLE POINT,,Grenada|NETTLE POINT]]
*[[NEW GARDENS,,Grenada|NEW GARDENS]]
*[[OTTLEY'S LANE,,Grenada|OTTLEY'S LANE]]
*[[PARK ESTATE,,Grenada|PARK ESTATE]]
*[[PENNY RETREAT,,Grenada|PENNY RETREAT]]
*[[SAMUELS AVENUE,,Grenada|SAMUELS AVENUE]]
*[[SAUTEURS, MAHOUT,,Grenada|SAUTEURS, MAHOUT]]
*[[SCHOOL LANE,,Grenada|SCHOOL LANE]]
*[[ST. BENOIT'S STREET,,Grenada|ST. BENOIT'S STREET]]
*[[ST. CYR,,Grenada|ST. CYR]]
*[[ST. DAVID STREET,,Grenada|ST. DAVID STREET]]
*[[ST. DOMINIC'S ST.,,Grenada|ST. DOMINIC'S ST.]]
*[[TAYBAKAY,,Grenada|TAYBAKAY]]
*[[TAYLOR,,Grenada|TAYLOR]]
*[[THE SUMMIT,,Grenada|THE SUMMIT]]
*[[THE VILLA, THE ROCK,,Grenada|THE VILLA, THE ROCK]]
*[[VINEYARD,,Grenada|VINEYARD]]
1cba0c0b72dd05e9a01ed85c6d4bf57665fb59cb
183
182
2022-07-22T21:52:58Z
Wikiricky
1
added upper and lower conference
wikitext
text/x-wiki
This is a list of populated villages, towns, settlements, and streets in Grenada. Many of the village names in Grenada are based upon the names of plantations. Grenada has 7 Parishes
==[[St.George,Grenada|St.George]]==
*[[ANNANDALE,St.George,Grenada|ANNANDALE]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/100 Annandale Estate - Legacies of British Slavery - UCL]</ref>
*[[ARCHIBALD AVENUE,St.George,Grenada|ARCHIBALD AVENUE]]
*[[BACK STREET, TEMPE,St.George,Grenada|BACK STREET, TEMPE]]
*[[BAIN'S ALLEY,St.George,Grenada|BAIN'S ALLEY]]
*[[BEAULIEU,St.George,Grenada|BEAULIEU]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1320 <nowiki>Beaulieu [ Grenada | St George ] - UCL</nowiki>]</ref>
*[[BELMONT,St.George,Grenada|BELMONT]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1290</ref>
*[[BLACK FOREST, VENDOME,St.George,Grenada|BLACK FOREST, VENDOME]]
*[[BLACKBURN ALLEY,St.George,Grenada|BLACKBURN ALLEY]]
*[[BOCA,St.George,Grenada|BOCA]]
*[[BON ACCORD ESTATE,St.George,Grenada|BON ACCORD ESTATE]]
*[[BOTANICAL GARDENS,St.George,Grenada|BOTANICAL GARDENS]]
*[[BRIGG'S ALLEY,St.George,Grenada|BRIGG'S ALLEY]]
*[[BRIZAN,St.George,Grenada|BRIZAN]]
*[[CAFE,St.George,Grenada|CAFE]]
*[[CALABASH ALLEY,St.George,Grenada|CALABASH ALLEY]]
*[[CALIVIGNY,St.George,Grenada|CALIVIGNY]]
*[[CALLISTE,St.George,Grenada|CALLISTE]]
*[[CARENAGE,St.George,Grenada|CARENAGE]]
*[[CARRIERE,St.George,Grenada|CARRIERE]]
*[[CEMETERY HILL,St.George,Grenada|CEMETERY HILL]]
*[[CHANTILLY, TEMPE,St.George,Grenada|CHANTILLY, TEMPE]]
*[[CHEMIN RIVER,St.George,Grenada|CHEMIN RIVER]]
*[[CHERRY HILL,St.George,Grenada|CHERRY HILL]]
*[[CHURCH STREET,St.George,Grenada|CHURCH STREET]]
*[[CIRCULAR DRIVE, FREQUENTE,St.George,Grenada|CIRCULAR DRIVE, FREQUENTE]]
*[[CLARKES COURT BAY,St.George,Grenada|CLARKES COURT BAY,]]
*[[COCOA ROAD, MARIAN,St.George,Grenada|COCOA ROAD, MARIAN]]
*[[CONFER,St.George,Grenada|CONFER]]
*[[CONSTANTINE,St.George,Grenada|CONSTANTINE]]
*[[CORBEAU TOWN,St.George,Grenada|CORBEAU TOWN]]
*[[COX ALLEY,St.George,Grenada|COX ALLEY]]
*[[CREIGHTON,St.George,Grenada|CREIGHTON]]
*[[CROSS STREET,St.George,Grenada|CROSS STREET]]
*[[D'ARBEAU,St.George,Grenada|D'ARBEAU]]
*[[DE FAUX,St.George,Grenada|DE FAUX]]
*[[DEPONTHIEU STREET,St.George,Grenada|DEPONTHIEU STREET]]
*[[DE VILLA, BLACKBURN ALLEY,St.George,Grenada|DE VILLA, BLACKBURN ALLEY]]
*[[DIXIE, SPRINGS,St.George,Grenada|DIXIE, SPRINGS]]
*[[DUSTY HIGHWAY, GRAND ANSE,St.George,Grenada|DUSTY HIGHWAY, GRAND ANSE]]
*[[EDGEMOND POINT,St.George,Grenada|EDGEMOND POINT]]
*[[FALL EDGE, GRAND ANSE,St.George,Grenada|FALL EDGE, GRAND ANSE]]
*[[FENTON VILLAGE,St.George,Grenada|FENTON VILLAGE]]
*[[FONTENOY,St.George,Grenada|FONTENOY]]
*[[FORT JUEDY,St.George,Grenada|FORT JUEDY]]
*[[FREQUENTE,St.George,Grenada|FREQUENTE]]
*[[GOLF COURSE,St.George,Grenada|GOLF COURSE]]
*[[GOOD HOPE,St.George,Grenada|GOOD HOPE]]
*[[GORE STREET,St.George,Grenada|GORE STREET]]
*[[GRAND ANSE,St.George,Grenada|GRAND ANSE]]
*[[GRAND ANSE ESTATE, LANCE AUX,St.George,Grenada|GRAND ANSE ESTATE, LANCE AUX]]
*[[GRAND ANSE HOUSING SCHEME,St.George,Grenada|GRAND ANSE HOUSING SCHEME]]
*[[GRAND ANSE VALLEY,St.George,Grenada|GRAND ANSE VALLEY]]
*[[GRAND ETANG ROAD,St.George,Grenada|GRAND ETANG ROAD]]
*[[GRAND MAL,St.George,Grenada|GRAND MAL]]
*[[GRANTON,St.George,Grenada|GRANTON]]
*[[GREEN STREET,St.George,Grenada|GREEN STREET]]
*[[GRENVILLE STREET,St.George,Grenada|GRENVILLE STREET]]
*[[GRENVILLE VALE,St.George,Grenada|GRENVILLE VALE]]
*[[GREY STONE, BELMONT,St.George,Grenada|GREY STONE, BELMONT]]
*[[H.A BLAIZE STREET,St.George,Grenada|H.A BLAIZE STREET]]
*[[HADDON SMITH STREET,St.George,Grenada|HADDON SMITH STREET]]
*[[HALIFAX STREET,St.George,Grenada|HALIFAX STREET]]
*[[HAPPY HILL,St.George,Grenada|HAPPY HILL]]
*[[HILL TOP, CALIVIGNY,St.George,Grenada|HILL TOP, CALIVIGNY]]
*[[HILLS ROAD,St.George,Grenada|HILLS ROAD]]
*[[HILLSBOROUGH STREET,St.George,Grenada|HILLSBOROUGH STREET]]
*[[HOPE VALE,St.George,Grenada|HOPE VALE]]
*[[INDEPENDENCE AVENUE,St.George,Grenada|INDEPENDENCE AVENUE]]
*[[JEAN ANGLIAS,St.George,Grenada|JEAN ANGLIAS]]
*[[JUMBIE,St.George,Grenada|JUMBIE]]
*[[KAFE BEAU HILL,St.George,Grenada|KAFE BEAU HILL]]
*[[LA BORIE,St.George,Grenada|LA BORIE]]
*[[LA MODE,St.George,Grenada|LA MODE]]
*[[LAGOON ROAD,St.George,Grenada|LAGOON ROAD]]
*[[LANCE AUX EPINES,St.George,Grenada|LANCE AUX EPINES]]
*[[LONG GUTTER,St.George,Grenada|LONG GUTTER]]
*[[LOWER MORNE JALOUX,St.George,Grenada|LOWER MORNE JALOUX]]
*[[LOWER WOBURN,St.George,Grenada|LOWER WOBURN]]
*[[LOWTHER'S LANE,St.George,Grenada|LOWTHER'S LANE]]
*[[LUCAS STREET,St.George,Grenada|LUCAS STREET]]
*[[MALONEY STREET,St.George,Grenada|MALONEY STREET]]
*[[MANGO, NEW HAMPSHIRE,St.George,Grenada|MANGO, NEW HAMPSHIRE]]
*[[MARIAN,St.George,Grenada|MARIAN]]
*[[MARKET HILL,St.George,Grenada|MARKET HILL]]
*[[MARRAST HILL,St.George,Grenada|MARRAST HILL]]
*[[MAURICE BISHOP HIGHWAY, GRAND ANSE,St.George,Grenada|MAURICE BISHOP HIGHWAY, GRAND ANSE]]
*[[MAURICE BISHOP HWY, GRAND,St.George,Grenada|MAURICE BISHOP HWY, GRAND]]
*[[MELVILLE STREET,St.George,Grenada|MELVILLE STREET]]
*[[MOLINIERE,St.George,Grenada|MOLINIERE]]
*[[MONT TOUTE,St.George,Grenada|MONT TOUTE]]
*[[MORNE JALOUX,St.George,Grenada|MORNE JALOUX]]
*[[MORNE ROUGE,St.George,Grenada|MORNE ROUGE]]
*[[MORTLEY ROAD,St.George,Grenada|MORTLEY ROAD]]
*[[MT. AIRY,St.George,Grenada|MT. AIRY]]
*[[MT. GAY,St.George,Grenada|MT. GAY]]
*[[MT. HARTMAN,St.George,Grenada|MT. HARTMAN]]
*[[MT. MORITZ,St.George,Grenada|MT. MORITZ]]
*[[MT. PARNASSUS,St.George,Grenada|MT. PARNASSUS]]
*[[MT. RUSH,St.George,Grenada|MT. RUSH]]
*[[MT. WHELDALE,St.George,Grenada|MT. WHELDALE]]
*[[OBSERVATORY ROAD,St.George,Grenada|OBSERVATORY ROAD]]
*[[OLD FORT,St.George,Grenada|OLD FORT]]
*[[PADDOCK,St.George,Grenada|PADDOCK]]
*[[PARADE,St.George,Grenada|PARADE]]
*[[PARK LANE,St.George,Grenada|PARK LANE]]
*[[PERSEVERANCE,St.George,Grenada|PERSEVERANCE]]
*[[PETERSFIELD,St.George,Grenada|PETERSFIELD]]
*[[POINT SALINES,St.George,Grenada|POINT SALINES]]
*[[QUEEN'S PARK,St.George,Grenada|QUEEN'S PARK]]
*[[RADIX, MT. PARNASSUS,St.George,Grenada|RADIX, MT. PARNASSUS]]
*[[RAVINE, MT. GAY,St.George,Grenada|RAVINE, MT. GAY]]
*[[RICHMOND HILL,St.George,Grenada|RICHMOND HILL]]
*[[RIVER ROAD,St.George,Grenada|RIVER ROAD]]
*[[ROEBUCK,St.George,Grenada|ROEBUCK]]
*[[SANS SOUCI,St.George,Grenada|SANS SOUCI]]
*[[SCOTT STREET,St.George,Grenada|SCOTT STREET]]
*[[SHENDA,St.George,Grenada|SHENDA]]
*[[SIMMONS STREET,St.George,Grenada|SIMMONS STREET]]
*[[SNUG CORNER,St.George,Grenada|SNUG CORNER]]
*[[SPRINGS,St.George,Grenada|SPRINGS]]
*[[ST. GEORGE ESTATE,St.George,Grenada|ST. GEORGE ESTATE]]
*[[ST. JOHN STREET,St.George,Grenada|ST. JOHN STREET]]
*[[ST. JUILLE STREET,St.George,Grenada|ST. JUILLE STREET]]
*[[ST.PAUL'S,St.George,Grenada|ST.PAUL'S]]
*[[SUNSET VALLEY, POINT SALINES,St.George,Grenada|SUNSET VALLEY, POINT SALINES]]
*[[TANTEEN, TANTEEN TERRACE,St.George,Grenada|TANTEEN, TANTEEN TERRACE]]
*[[TEMPE,St.George,Grenada|TEMPE]]
*[[TETMUND,St.George,Grenada|TETMUND]]
*[[THE BOCAS,St.George,Grenada|THE BOCAS]]
*[[THE GREENS,St.George,Grenada|THE GREENS]]
*[[THE LIMES,St.George,Grenada|THE LIMES]]
*[[THE STONES, GRAND ANSE,St.George,Grenada|THE STONES, GRAND ANSE]]
*[[THE STONES, NEW HAMPSHIRE,St.George,Grenada|THE STONES, NEW HAMPSHIRE]]
*[[THE VILLA, LONG GUTTER,St.George,Grenada|THE VILLA, LONG GUTTER]]
*[[TRANQUIL LANE,St.George,Grenada|TRANQUIL LANE]]
*[[TRUE BLUE,St.George,Grenada|TRUE BLUE]]
*[[TRYNE ALLEY,St.George,Grenada|TRYNE ALLEY]]
*[[TURTLE BACK DRIVE, LANCE AUX,St.George,Grenada|TURTLE BACK DRIVE, LANCE AUX]]
*[[TYRREL STREET,St.George,Grenada|TYRREL STREET]]
*[[UPPER MORNE JALOUX,St.George,Grenada|UPPER MORNE JALOUX]]
*[[UPPER WOBURN,St.George,Grenada|UPPER WOBURN]]
*[[VENDOME,St.George,Grenada|VENDOME]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1287</ref>
*[[WELCOME,St.George,Grenada|WELCOME]]
*[[WHITE GUN,St.George,Grenada|WHITE GUN]]
*[[WHITE HALL, PARK LANE,St.George,Grenada|WHITE HALL, PARK LANE]]
*[[WILLIAMSON ROAD,St.George,Grenada|WILLIAMSON ROAD]]
*[[WILLIS,St.George,Grenada|WILLIS]]
*[[WOODLANDS,St.George,Grenada|WOODLANDS]]
*[[WOOLWICH ROAD,St.George,Grenada|WOOLWICH ROAD]]
*[[YOUNG STREET,St.George,Grenada|YOUNG STREET]]
==[[St.John,Grenada|St.John]]==
*[[BACK STREET,St.John,Grenada|BACK STREET]]
*[[BELVIDERE,St.John,Grenada|BELVIDERE]]
*[[BLACK BAY,St.John,Grenada|BLACK BAY]]
*[[BOYKES LANE, GOUYAVE,St.John,Grenada|BOYKES LANE, GOUYAVE]]
*[[BROOKLYN,St.John,Grenada|BROOKLYN]]
*[[BROTHERS ESTATE,St.John,Grenada|BROTHERS ESTATE]]
*[[CENTRAL DEPRADINE STREET,St.John,Grenada|CENTRAL DEPRADINE STREET]]
*[[CLOZIER,St.John,Grenada|CLOZIER]]
*[[CONCORD,St.John,Grenada|CONCORD]]
*[[CORNETS WALK, GOUYAVE,St.John,Grenada|CORNETS WALK, GOUYAVE]]
*[[COTTON BAILY,St.John,Grenada|COTTON BAILY]]
*[[D LANCE, UPPER DEPRADINE,St.John,Grenada|D LANCE, UPPER DEPRADINE]]
*[[DOCTOR BELLE,St.John,Grenada|DOCTOR BELLE]]
*[[DOUGALDSTON,St.John,Grenada|DOUGALDSTON]]
*[[EDWARD STREET, GOUYAVE,St.John,Grenada|EDWARD STREET, GOUYAVE]]
*[[FERGUSON'S LANE,St.John,Grenada|FERGUSON'S LANE]]
*[[FLORIDA,St.John,Grenada|FLORIDA]]
*[[GOUYAVE ESTATE,St.John,Grenada|GOUYAVE ESTATE]]
*[[GRAND ROY,St.John,Grenada|GRAND ROY]]
*[[HILLSVIEW, GOUYAVE,St.John,Grenada|HILLSVIEW, GOUYAVE]]
*[[LANGTON ROAD, GOUYAVE,St.John,Grenada|LANGTON ROAD, GOUYAVE]]
*[[LOWER DEPRADINE STREET,St.John,Grenada|LOWER DEPRADINE STREET]]
*[[MARIGOT,St.John,Grenada|MARIGOT]]
*[[MITCHELL'S LANE,St.John,Grenada|MITCHELL'S LANE]]
*[[MONGO ROAD, GOUYAVE ESTATE,St.John,Grenada|MONGO ROAD, GOUYAVE ESTATE]]
*[[MT. GRANBY,St.John,Grenada|MT. GRANBY]]
*[[MT. NESBIT,St.John,Grenada|MT. NESBIT]]
*[[NEW STREET, EDWARD STREET,St.John,Grenada|NEW STREET, EDWARD STREET]]
*[[NEW STREET, GOUYAVE,St.John,Grenada|NEW STREET, GOUYAVE]]
*[[PALMISTE,St.John,Grenada|PALMISTE]]
*[[QUEEN STREET, ST. JOHN'S,St.John,Grenada|QUEEN STREET, ST. JOHN'S]]
*[[RENNIE,St.John,Grenada|RENNIE]]
*[[RIVER LANE, GOUYAVE ESTATE,St.John,Grenada|RIVER LANE, GOUYAVE ESTATE]]
*[[RIVER LANE, GOUYAVE,St.John,Grenada|RIVER LANE, GOUYAVE]]
*[[ROSEMOUNT,St.John,Grenada|ROSEMOUNT]]
*[[SCHOOL LANE, GOUYAVE,St.John,Grenada|SCHOOL LANE, GOUYAVE]]
*[[ST BENOIT STREET, GOUYAVE,St.John,Grenada|ST BENOIT STREET, GOUYAVE]]
*[[ST DOMINIC STREET, GOUYAVE,St.John,Grenada|ST DOMINIC STREET, GOUYAVE]]
*[[ST DOMINIC, GOUYAVE,St.John,Grenada|ST DOMINIC, GOUYAVE]]
*[[ST FRANCIS, GOUYAVE,St.John,Grenada|ST FRANCIS, GOUYAVE]]
*[[ST PETERS STREET, GOUYAVE,St.John,Grenada|ST PETERS STREET, GOUYAVE]]
*[[ST PETERS, GOUYAVE,St.John,Grenada|ST PETERS, GOUYAVE]]
*[[ST. FRANCIS STREET,St.John,Grenada|ST. FRANCIS STREET]]
*[[ST. PETER STREET,St.John,Grenada|ST. PETER STREET]]
*[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]]
*[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]]
*[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]]
*[[UPPER DEPRADINE STREET,St.John,Grenada|UPPER DEPRADINE STREET]]
*[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]]
*[[VICTORIA ROAD, GOUYAVE,St.John,Grenada|VICTORIA ROAD, GOUYAVE]]
*[[VICTORIA STREET,St.John,Grenada|VICTORIA STREET]]
*[[WATERLOO,St.John,Grenada|WATERLOO]]
*[[WOODFORD,St.John,Grenada|WOODFORD]]
==[[St.David,Grenada|St.David]]==
*[[APRES TOUTE,St.David,Grenada|APRES TOUTE]]
*[[BAILLES BACOLET,St.David,Grenada|BAILLES BACOLET]]
*[[BEATON,St.David,Grenada|BEATON]]
*[[BELLE ISLE,St.David,Grenada|BELLE ISLE]]
*[[BELLE VUE,St.David,Grenada|BELLE VUE]]
*[[BOCAGE,St.David,Grenada|BOCAGE]]
*[[CHAMPFLEURS,St.David,Grenada|CHAMPFLEURS]]
*[[COALS GAPS,St.David,Grenada|COALS GAPS]]
*[[CONTENT,St.David,Grenada|CONTENT]]
*[[CORINTH,St.David,Grenada|CORINTH]]
*[[DUDMAR,St.David,Grenada|DUDMAR]]
*[[EPPIN FOREST,St.David,Grenada|EPPIN FOREST]]
*[[HARMONY HALL,St.David,Grenada|HARMONY HALL]]
*[[LA CALOHME,St.David,Grenada|LA CALOHME]]
*[[LA FEMME,St.David,Grenada|LA FEMME]]
*[[LA FLORETTA,St.David,Grenada|LA FLORETTA]]
*[[LA PASTORA,St.David,Grenada|LA PASTORA]]
*[[LA SAGESSE,St.David,Grenada|LA SAGESSE]]
*[[LA TANTE,St.David,Grenada|LA TANTE]]
*[[MARLMOUNT,St.David,Grenada|MARLMOUNT]]
*[[MARDIGRAS,St.David,Grenada|MARDIGRAS]]
*[[MARLMOUNT, GLEBE LAND,St.David,Grenada|MARLMOUNT, GLEBE LAND]]
*[[MAULTY,St.David,Grenada|MAULTY]]
*[[MAYANN, CONSTANTINE,St.David,Grenada|MAYANN, CONSTANTINE]]
*[[MINORCA,St.David,Grenada|MINORCA]]
*[[MORNE DELICE,St.David,Grenada|MORNE DELICE]]
*[[MON REPOS,St.David,Grenada|MON REPOS]]
*[[MT. AGNES,St.David,Grenada|MT. AGNES]]
*[[MT. DISIRE,St.David,Grenada|MT. DISIRE]]
*[[MT. ROSE,St.David,Grenada|MT. ROSE]]
*[[MYANN, CONSTANTINE,St.David,Grenada|MYANN, CONSTANTINE]]
*[[NEW WESTERHALL,St.David,Grenada|NEW WESTERHALL]]
*[[OLD WESTERHALL,St.David,Grenada|OLD WESTERHALL]]
*[[PERDMONTEMPS,St.David,Grenada|PERDMONTEMPS]]
*[[PETITE BACAYE, NEW,St.David,Grenada|PETITE BACAYE, NEW]]
*[[PETITE ESPERANCE,St.David,Grenada|PETITE ESPERANCE]]
*[[PETITE ETANG,St.David,Grenada|PETITE ETANG]]
*[[POMME ROSE,St.David,Grenada|POMME ROSE]]
*[[RED GATE,St.David,Grenada|RED GATE]]
*[[REDMUD,St.David,Grenada|REDMUD]]
*[[REQUIN,St.David,Grenada|REQUIN]]
*[[SLINGER STREET,St.David,Grenada|SLINGER STREET]]
*[[SYRACUSE,St.David,Grenada|SYRACUSE]]
*[[THEBAIDE,St.David,Grenada|THEBAIDE]]
*[[TABOR,St.David,Grenada|TABOR]]
*[[UPPER LAURA,St.David,Grenada|UPPER LAURA]]
*[[VINCENNES,St.David,Grenada|VINCENNES]]
*[[WESTERHALL POINT,St.David,Grenada|WESTERHALL POINT]]
*[[WINDSOR,St.David,Grenada|WINDSOR]]
*[[WINDSOR FOREST,St.David,Grenada|WINDSOR FOREST]]
==[[Carriacou and Petite Martinique,Grenada|Carriacou and Petite Martinique]]==
*[[BAYALEAU,Carriacou,Grenada|BAYALEAU]]
*[[BEAUSEJOUR,Carriacou,Grenada|BEAUSEJOUR]]
*[[BELAIR,Carriacou,Grenada|BELAIR]]
*[[BELLE VUE,Carriacou,Grenada|BELLE VUE]]
*[[BELMONT,Carriacou,Grenada|BELMONT]]
*[[BOGLES,Carriacou,Grenada|BOGLES]]
*[[BRUNSWICK,Carriacou,Grenada|BRUNSWICK]]
*[[CHURCH STREET, HILLSBOROUGH,Carriacou,Grenada|CHURCH STREET, HILLSBOROUGH]]
*[[CRAIGSTON,Carriacou,Grenada|CRAIGSTON]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1385]</ref>
*[[CHERRY HILL,Carriacou,Grenada|CHERRY HILL]]
*[[DOVER,Carriacou,Grenada|DOVER]]
*[[DUMFRIES,Carriacou,Grenada|DUMFRIES]]
*[[GRAND BAY,Carriacou,Grenada|GRAND BAY]]
*[[HARVEY VALE,Carriacou,Grenada|HARVEY VALE]]
*[[HERMITAGE,Carriacou,Grenada|HERMITAGE]]
*[[HILLSBOROUGH,Carriacou,Grenada|HILLSBOROUGH]]
*[[L'ESTERRE,Carriacou,Grenada|L'ESTERRE]]
*[[LAURISTON,Carriacou,Grenada|LAURISTON]]
*[[LIMLAIR,Carriacou,Grenada|LIMLAIR]]
*[[MELDRUM,Carriacou,Grenada|MELDRUM]]
*[[MT. DISIRE,Carriacou,Grenada|MT. DISIRE]]
*[[MT. PLEASANT,Carriacou,Grenada|MT. PLEASANT]]
*[[MT. ST ERVANS, L'ESTERRIE,Carriacou,Grenada|MT ST ERVANS, L'ESTERRIE]]
*[[MT. ROYAL,Carriacou,Grenada|MT. ROYAL]]
*[[PROSPECT HALL,Carriacou,Grenada|PROSPECT HALL]]
*[[SIX ROADS,Carriacou,Grenada|SIX ROADS]]
*[[TOP HILL,Carriacou,Grenada|TOP HILL]]
*[[WINDWARD,Carriacou,Grenada|WINDWARD]]
*[[PETITE MARTINIQUE,PETIT MARTINIQUE,Grenada|PETITE MARTINIQUE]]
==[[St.Andrew,Grenada|St.Andrew]]==
*[[MT. FANN,St. Andrew,Grenada|MT. FANN]]
*[[ADELPHI,St.Andrew,Grenada|ADELPHI]]
*[[AHOMA,St.Andrew,Grenada|AHOMA]]
*[[BALTHAZAR,St.Andrew,Grenada|BALTHAZAR]]
*[[BAYROAD,St.Andrew,Grenada|BAYROAD]]
*[[BLAIZE,St.Andrew,Grenada|BLAIZE]]
*[[BAMBOO,St.Andrew,Grenada|BAMBOO]]
*[[BATTLE HILL,St.Andrew,Grenada|BATTLE HILL]]
*[[BEAUREGARD,St.Andrew,Grenada|BEAUREGARD]]
*[[BELLE VUE,St.Andrew,Grenada|BELLE VUE]]
*[[BELVEDERE,St.Andrew,Grenada|BELVEDERE]]
*[[BEN JONES STREET,St.Andrew,Grenada|BEN JONES STREET]]
*[[BIRCHGROVE,St.Andrew,Grenada|BIRCHGROVE]]
*[[BYELANDS,St.Andrew,Grenada|BYELANDS]]
*[[CAFE,St.Andrew,Grenada|CAFE]]
*[[CANAL ROAD,St.Andrew,Grenada|CANAL ROAD]]
*[[CARRIERE,St.Andrew,Grenada|CARRIERE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1305</ref>
*[[CARRUTH,St.Andrew,Grenada|CARRUTH]]
*[[CASTIGNE,St.Andrew,Grenada|CASTIGNE]]
*[[CHAPEL ROAD,St.Andrew,Grenada|CHAPEL ROAD]]
*[[COCOA ROAD,St.Andrew,Grenada|COCOA ROAD]]
*[[CODRONA,St.Andrew,Grenada|CODRONA]]
*[[UPPER CONFERENCE,St.Andrew,Grenada|UPPER CONFERENCE]]
*[[LOWER CONFERENCE,St.Andrew,Grenada|LOWER CONFERENCE]]
*[[COOKHILL ROAD,St.Andrew,Grenada|COOKHILL ROAD]]
*[[CROCHU,St.Andrew,Grenada|CROCHU]]
*[[DE BLANDEAU,St.Andrew,Grenada|DE BLANDEAU]]
*[[DUNFERMLINE,St.Andrew,Grenada|DUNFERMLINE]]
*[[DURRANT ROAD,St.Andrew,Grenada|DURRANT ROAD]]
*[[FORD HILL ROAD,St.Andrew,Grenada|FORD HILL ROAD]]
*[[FELIX PARK,St.Andrew,Grenada|FELIX PARK]]
*[[GRANLETTE,St.Andrew,Grenada|GRANLETTE]]
*[[GEORGE V. STREET,St.Andrew,Grenada|GEORGE V. STREET]]
*[[GLADSTONE ROAD,St.Andrew,Grenada|GLADSTONE ROAD]]
*[[GOUYAVE,St.Andrew,Grenada|GOUYAVE]]
*[[GRAND BACOLET,St.Andrew,Grenada|GRAND BACOLET]]
*[[GRAND BRAS,St.Andrew,Grenada|GRAND BRAS]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1303</ref>
*[[GRIFFIN LANE,St.Andrew,Grenada|GRIFFIN LANE]]
*[[GUPO,St.Andrew,Grenada|GUPO]]
*[[HARFORD VILLAGE,St.Andrew,Grenada|HARFORD VILLAGE]]
*[[HERMON,St.Andrew,Grenada|HERMON]]
*[[HILLS ROAD, LOWER,St.Andrew,Grenada|HILLS ROAD]]
*[[HOPE,St.Andrew,Grenada|HOPE]]
*[[HOPE CITY,St.Andrew,Grenada|HOPE CITY]]
*[[LA DIGUE,St.Andrew,Grenada|LA DIGUE]]
*[[LA FILLETTE,St.Andrew,Grenada|LA FILLETTE]]
*[[LA POTERIE,St.Andrew,Grenada|LA POTERIE]]
*[[L'ESTERRIE,St.Andrew,Grenada|L'ESTERRIE]]
*[[LOWER CAPITOL,St.Andrew,Grenada|LOWER CAPITOL]]
*[[LOWER HARFORD VILLAGE,St.Andrew,Grenada|LOWER HARFORD VILLAGE]]
*[[MAHOUT,St.Andrew,Grenada|MAHOUT]]
*[[MAMMA CANNES,St.Andrew,Grenada|MAMMA CANNES]]
*[[MARQUIS,St.Andrew,Grenada|MARQUIS]]
*[[MC NELLIE ALLEY, SAUTEURS,St.Andrew,Grenada|MC NELLIE ALLEY, SAUTEURS]]
*[[MC NEILLY, SAUTEURS,St.Andrew,Grenada|MC NEILLY, SAUTEURS]]
*[[MEADOW,St.Andrew,Grenada|MEADOW]]
*[[MELDRUM,St.Andrew,Grenada|MELDRUM]]
*[[MIRABEAU,St.Andrew,Grenada|MIRABEAU]]
*[[MORNE LOUNGE,St.Andrew,Grenada|MORNE LOUNGE]]
*[[MOYAH,St.Andrew,Grenada|MOYAH]]
*[[MT. ST ERVANS, LA DIGUE,St.Andrew,Grenada|MT ST ERVANS, LA DIGUE]]
*[[MT. CARMEL,St.Andrew,Grenada|MT. CARMEL]]
*[[MT. HORNE,St.Andrew,Grenada|MT. HORNE]]
*[[MT. PLEASANT,St.Andrew,Grenada|MT. PLEASANT]]
*[[MT. SEALEY,St.Andrew,Grenada|MT. SEALEY]]
*[[MUNICH,St.Andrew,Grenada|MUNICH]]
*[[NEW HAMPSHIRE,St.Andrew,Grenada|NEW HAMPSHIRE]]
*[[NOELSVILLE,St.Andrew,Grenada|NOELSVILLE]]
*[[PARACLETE,St.Andrew,Grenada|PARACLETE]]
*[[PARADISE,St.Andrew,Grenada|PARADISE]]
*[[PEARLS,St.Andrew,Grenada|PEARLS]]
*[[PLATEAU,St.Andrew,Grenada|PLATEAU]]
*[[PLEASANCE,St.Andrew,Grenada|PLEASANCE]]
*[[POST ROYAL,St.Andrew,Grenada|POST ROYAL]]
*[[PROVIDENCE,St.Andrew,Grenada|PROVIDENCE]]
*[[RETREAT,St.Andrew,Grenada|RETREAT]]
*[[RICHMOND,St.Andrew,Grenada|RICHMOND]]
*[[RIVULET LANE,St.Andrew,Grenada|RIVULET LANE]]
*[[SABB,St.Andrew,Grenada|SABB]]
*[[SALISBURY ROAD,St.Andrew,Grenada|SALISBURY ROAD]]
*[[SAMUEL AVENUE, CALIVIGNY,St.Andrew,Grenada|SAMUEL AVENUE, CALIVIGNY]]
*[[SEATON BROWNE STREET,St.Andrew,Grenada|SEATON BROWNE STREET]]
*[[SEATON JAMES STREET,St.Andrew,Grenada|SEATON JAMES STREET]]
*[[SENDALL STREET,St.Andrew,Grenada|SENDALL STREET]]
*[[SIMON,St.Andrew,Grenada|SIMON]]
*[[SNELL HALL,St.Andrew,Grenada|SNELL HALL]]
*[[SOUBISE,St.Andrew,Grenada|SOUBISE]]
*[[SPRING GARDEN,St.Andrew,Grenada|SPRING GARDEN]]
*[[ST. CLOUDS,St.Andrew,Grenada|ST. CLOUDS]]
*[[ST. JAMES,St.Andrew,Grenada|ST. JAMES]]
*[[ST. JOHNS,St.Andrew,Grenada|ST. JOHNS]]
*[[TOUS CONGO,St.Andrew,Grenada|TOUS CONGO]]
*[[TELESCOPE,St.Andrew,Grenada|TELESCOPE]]
*[[TIVOLI,St.Andrew,Grenada|TIVOLI]]
*[[TUILLIERIES,St.Andrew,Grenada|TUILLIERIES]]
*[[UNION,St.Andrew,Grenada|UNION]]
*[[UPPER CAPITOL,St.Andrew,Grenada|UPPER CAPITOL]]
*[[THE VILLA,St.Andrew,Grenada|THE VILLA]]
*[[VILLAGE ROAD,St.Andrew,Grenada|VILLAGE ROAD]]
*[[VICTORIA STREET,St.Andrew,Grenada|VICTORIA STREET]]
*[[WALKER,St.Andrew,Grenada|WALKER]]
*[[WELLS ROAD,St.Andrew,Grenada|WELLS ROAD]]
==[[St.Mark,Grenada|St.Mark]]==
*[[BOCAGE,St.Mark,Grenada|BOCAGE]]
*[[BOCAGE, BONAIR,St.Mark,Grenada|BOCAGE, BONAIR]]
*[[BONAIR,St.Mark,Grenada|BONAIR]]
*[[BONIAR ROAD, BONAIR,St.Mark,Grenada|BONIAR ROAD, BONAIR]]
*[[CHARLOTTE VALE,St.Mark,Grenada|CHARLOTTE VALE]]
*[[COAST GUARD,St.Mark,Grenada|COAST GUARD]]
*[[CRUICKSHANK ROAD,St.Mark,Grenada|CRUICKSHANK ROAD]]
*[[CRUICKSHANK ROAD, VICTORIA,St.Mark,Grenada|CRUICKSHANK ROAD, VICTORIA]]
*[[DARVEY,St.Mark,Grenada|DARVEY]]
*[[DE VILLA,St.Mark,Grenada|DE VILLA]]
*[[DIAMOND ESTATE,St.Mark,Grenada|DIAMOND ESTATE]]
*[[DIAMOND STREET, VICTORIA,St.Mark,Grenada|DIAMOND STREET, VICTORIA]]
*[[DIEGO PIECE,St.Mark,Grenada|DIEGO PIECE]]
*[[DUQUESNE,St.Mark,Grenada|DUQUESNE]]
*[[FAIR FIELD ROAD, VICTORIA,St.Mark,Grenada|FAIR FIELD ROAD, VICTORIA]]
*[[GALL STREET, VICTORIA,St.Mark,Grenada|GALL STREET, VICTORIA]]
*[[GROSS POINT, GROSS POINT VILLA,St.Mark,Grenada|GROSS POINT, GROSS POINT VILLA]]
*[[INDUSTRY,St.Mark,Grenada|INDUSTRY]]
*[[LA RESOURCE,St.Mark,Grenada|LA RESOURCE]]
*[[MARAN,St.Mark,Grenada|MARAN]]
*[[MT. EDGECOMBE,St.Mark,Grenada|MT. EDGECOMBE]]
*[[MUNRO STREET, VICTORIA,St.Mark,Grenada|MUNRO STREET, VICTORIA]]
*[[NON-PARIEL,St.Mark,Grenada|NON-PARIEL]]
*[[PETIT BOCAGE,St.Mark,Grenada|PETIT BOCAGE]]
*[[QUEEN STREET, VICTORIA,St.Mark,Grenada|QUEEN STREET, VICTORIA]]
*[[RESOURCE,St.Mark,Grenada|RESOURCE]]
*[[RESOURCE, RESOURCE,St.Mark,Grenada|RESOURCE, RESOURCE]]
*[[RIVER SALLEE,St.Mark,Grenada|RIVER SALLEE]]
*[[SAMARITAN,St.Mark,Grenada|SAMARITAN]]
*[[SAMARITAN, DIEGO PIECE,St.Mark,Grenada|SAMARITAN, DIEGO PIECE]]
*[[ST DAVID STREET, VICTORIA,St.Mark,Grenada|ST DAVID STREET, VICTORIA]]
*[[ST JOHN STREET, VICTORIA,St.Mark,Grenada|ST JOHN STREET, VICTORIA]]
*[[STEWAD COTTAGE,St.Mark,Grenada|STEWAD COTTAGE]]
*[[VICTORIA,St.Mark,Grenada|VICTORIA]]
*[[WALTHAM,St.Mark,Grenada|WALTHAM]]
==[[St.Patrick,Grenada|St.Patrick]]==
*[[BATHWAY,St.Patrick,Grenada|BATHWAY]]
*[[BAY ROAD, SAUTEURS,St.Patrick,Grenada|BAY ROAD, SAUTEURS]]
*[[BELMONT,St.Patrick,Grenada|BELMONT]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1317</ref>
*[[CEDARS,St.Patrick,Grenada|CEDARS]]
*[[CHANTIMELLE,St.Patrick,Grenada|CHANTIMELLE]]
*[[CROSS STREET, SAUTEURS,St.Patrick,Grenada|CROSS STREET, SAUTEURS]]
*[[GLEBE LAND, SAUTEURS,St.Patrick,Grenada|GLEBE LAND, SAUTEURS]]
*[[GLEBE STREET, SAUTEURS,St.Patrick,Grenada|GLEBE STREET, SAUTEURS]]
*[[HERMITAGE,St.Patrick,Grenada|HERMITAGE]]
*[[HIGH GATE, MORNE FENDUE,St.Patrick,Grenada|HIGH GATE, MORNE FENDUE]]
*[[HIGH STREET, SAUTEURS,St.Patrick,Grenada|HIGH STREET, SAUTEURS]]
*[[HILL STREET, SAUTEURS,St.Patrick,Grenada|HILL STREET, SAUTEURS]]
*[[LA FORTUNE,St.Patrick,Grenada|LA FORTUNE]]
*[[LA TASTE,St.Patrick,Grenada|LA TASTE]]
*[[LEVERA,St.Patrick,Grenada|LEVERA]]
*[[MADEYS,St.Patrick,Grenada|MADEYS]]
*[[MAHOUT, ROSE HILL,St.Patrick,Grenada|MAHOUT, ROSE HILL]]
*[[MAIN STREET, SAUTEURS,St.Patrick,Grenada|MAIN STREET, SAUTEURS]]
*[[MARLI,St.Patrick,Grenada|MARLI]]
*[[MC NEILLY ALLEY, MARLI,St.Patrick,Grenada|MC NEILLY ALLEY, MARLI]]
*[[MC NELLIE ALLEY, SAUTEURS,St.Patrick,Grenada|MC NELLIE ALLEY, SAUTEURS]]
*[[MORNE FENDUE,St.Patrick,Grenada|MORNE FENDUE]]
*[[MT. CRAVEN,St.Patrick,Grenada|MT. CRAVEN]]
*[[MT. RICH,St.Patrick,Grenada|MT. RICH]]
*[[MT. ROSE,St.Patrick,Grenada|MT. ROSE]]
*[[PEGGYS WHIM, HERMITAGE,St.Patrick,Grenada|PEGGYS WHIM, HERMITAGE]]
*[[PLAINS,St.Patrick,Grenada|PLAINS]]
*[[POINTZFIELD,St.Patrick,Grenada|POINTZFIELD]]
*[[PROSPECT,St.Patrick,Grenada|PROSPECT]]
*[[RED HEAD STREET, LA FORTUNE,St.Patrick,Grenada|RED HEAD STREET, LA FORTUNE]]
*[[RED HEAD STREET, SAUTEURS,St.Patrick,Grenada|RED HEAD STREET, SAUTEURS]]
*[[RED MUD,St.Patrick,Grenada|RED MUD]]
*[[RIVER SALLEE,St.Patrick,Grenada|RIVER SALLEE]]
*[[ROSE HILL,St.Patrick,Grenada|ROSE HILL]]
*[[SALISBURY RD, SAUTEURS,St.Patrick,Grenada|SALISBURY RD, SAUTEURS]]
*[[SALISBURY STREET, SAUTEURS,St.Patrick,Grenada|SALISBURY STREET, SAUTEURS]]
*[[SAUTEURS,St.Patrick,Grenada|SAUTEURS]]
*[[THE VILLA, SAUTEURS,St.Patrick,Grenada|THE VILLA, SAUTEURS]]
== Uncategorized==
*[[ADAM'S ALLEY,,Grenada|ADAM'S ALLEY]]
*[[AFRICA,,Grenada|AFRICA]]
*[[APSLEY HILL,,Grenada|APSLEY HILL]]
*[[BLUGGO,,Grenada|BLUGGO]]
*[[BYWAY,,Grenada|BYWAY]]
*[[CELESTE,,Grenada|CELESTE]]
*[[CENTRAL DEPRADINE, GOUYAVE,,Grenada|CENTRAL DEPRADINE, GOUYAVE]]
*[[CHADDEAU,,Grenada|CHADDEAU]]
*[[CHANCERY STREET, MUNRO,,Grenada|CHANCERY STREET, MUNRO]]
*[[CHAPEL'S LANE,,Grenada|CHAPEL'S LANE]]
*[[CHURCH HILL ROAD,,Grenada|CHURCH HILL ROAD]]
*[[COOPER'S HILL,,Grenada|COOPER'S HILL]]
*[[CORNWALL STREET, SAUTEURS,,Grenada|CORNWALL STREET, SAUTEURS]]
*[[DE SILLES,,Grenada|DE SILLES]]
*[[DEHAR, GLEBE LAND,,Grenada|DEHAR, GLEBE LAND]]
*[[DOTHAN ESTATE,,Grenada|DOTHAN ESTATE]]
*[[DURRANT ROAD,,Grenada|DURRANT ROAD]]
*[[FENCE,,Grenada|FENCE]]
*[[FERGUSONS LANE, GOUYAVE,,Grenada|FERGUSONS LANE, GOUYAVE]]
*[[FIELD STREET,,Grenada|FIELD STREET]]
*[[FOUNTAIN,,Grenada|FOUNTAIN]]
*[[GLEBE LAND, SAUTEURS,,Grenada|GLEBE LAND, SAUTEURS]]
*[[GRAVEL STREET, VENDOME,,Grenada|GRAVEL STREET, VENDOME]]
*[[GROSS POINT VILLA,,Grenada|GROSS POINT VILLA]]
*[[HENRY STREET,,Grenada|HENRY STREET]]
*[[JONES ROAD,,Grenada|JONES ROAD]]
*[[LOWER CONFERENCE,,Grenada|LOWER CONFERENCE]]
*[[LOWER DEPRADINE, GOUYAVE,,Grenada|LOWER DEPRADINE, GOUYAVE]]
*[[LOWER LAURA,,Grenada|LOWER LAURA]]
*[[LYDER,,Grenada|LYDER]]
*[[MAHOUT, SAUTEURS,,Grenada|MAHOUT, SAUTEURS]]
*[[MAIN STREET, SAUTEURS,,Grenada|MAIN STREET, SAUTEURS]]
*[[MALIGNON,,Grenada|MALIGNON]]
*[[MARINE VILLA,,Grenada|MARINE VILLA]]
*[[MAUCHETTE,,Grenada|MAUCHETTE]]
*[[MC LAINE ALLEY, SAUTEURS,,Grenada|MC LAINE ALLEY, SAUTEURS]]
*[[MELROSE,,Grenada|MELROSE]]
*[[MT. ALEXANDER,,Grenada|MT. ALEXANDER]]
*[[MT. ANON,,Grenada|MT. ANON]]
*[[MT. CUMMA,,Grenada|MT. CUMMA]]
*[[MT. FELIX,,Grenada|MT. FELIX]]
*[[MT. PLASIR,,Grenada|MT. PLASIR]]
*[[MT. REUIL,,Grenada|MT. REUIL]]
*[[MT. RODNEY,,Grenada|MT. RODNEY]]
*[[MT. WILLIAMS,,Grenada|MT. WILLIAMS]]
*[[MUNRO STREET,,Grenada|MUNRO STREET]]
*[[MUNROE STREET, VICTORIA,,Grenada|MUNROE STREET, VICTORIA]]
*[[NETTLE POINT,,Grenada|NETTLE POINT]]
*[[NEW GARDENS,,Grenada|NEW GARDENS]]
*[[OTTLEY'S LANE,,Grenada|OTTLEY'S LANE]]
*[[PARK ESTATE,,Grenada|PARK ESTATE]]
*[[PENNY RETREAT,,Grenada|PENNY RETREAT]]
*[[SAMUELS AVENUE,,Grenada|SAMUELS AVENUE]]
*[[SAUTEURS, MAHOUT,,Grenada|SAUTEURS, MAHOUT]]
*[[SCHOOL LANE,,Grenada|SCHOOL LANE]]
*[[ST. BENOIT'S STREET,,Grenada|ST. BENOIT'S STREET]]
*[[ST. CYR,,Grenada|ST. CYR]]
*[[ST. DAVID STREET,,Grenada|ST. DAVID STREET]]
*[[ST. DOMINIC'S ST.,,Grenada|ST. DOMINIC'S ST.]]
*[[TAYBAKAY,,Grenada|TAYBAKAY]]
*[[TAYLOR,,Grenada|TAYLOR]]
*[[THE SUMMIT,,Grenada|THE SUMMIT]]
*[[THE VILLA, THE ROCK,,Grenada|THE VILLA, THE ROCK]]
*[[VINEYARD,,Grenada|VINEYARD]]
686049c7fd4ffe9933abcfe187990dd1ee8eec72
184
183
2022-07-22T23:05:17Z
Wikiricky
1
/* St.David */ added citations
wikitext
text/x-wiki
This is a list of populated villages, towns, settlements, and streets in Grenada. Many of the village names in Grenada are based upon the names of plantations. Grenada has 7 Parishes
==[[St.George,Grenada|St.George]]==
*[[ANNANDALE,St.George,Grenada|ANNANDALE]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/100 Annandale Estate - Legacies of British Slavery - UCL]</ref>
*[[ARCHIBALD AVENUE,St.George,Grenada|ARCHIBALD AVENUE]]
*[[BACK STREET, TEMPE,St.George,Grenada|BACK STREET, TEMPE]]
*[[BAIN'S ALLEY,St.George,Grenada|BAIN'S ALLEY]]
*[[BEAULIEU,St.George,Grenada|BEAULIEU]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1320 <nowiki>Beaulieu [ Grenada | St George ] - UCL</nowiki>]</ref>
*[[BELMONT,St.George,Grenada|BELMONT]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1290</ref>
*[[BLACK FOREST, VENDOME,St.George,Grenada|BLACK FOREST, VENDOME]]
*[[BLACKBURN ALLEY,St.George,Grenada|BLACKBURN ALLEY]]
*[[BOCA,St.George,Grenada|BOCA]]
*[[BON ACCORD ESTATE,St.George,Grenada|BON ACCORD ESTATE]]
*[[BOTANICAL GARDENS,St.George,Grenada|BOTANICAL GARDENS]]
*[[BRIGG'S ALLEY,St.George,Grenada|BRIGG'S ALLEY]]
*[[BRIZAN,St.George,Grenada|BRIZAN]]
*[[CAFE,St.George,Grenada|CAFE]]
*[[CALABASH ALLEY,St.George,Grenada|CALABASH ALLEY]]
*[[CALIVIGNY,St.George,Grenada|CALIVIGNY]]
*[[CALLISTE,St.George,Grenada|CALLISTE]]
*[[CARENAGE,St.George,Grenada|CARENAGE]]
*[[CARRIERE,St.George,Grenada|CARRIERE]]
*[[CEMETERY HILL,St.George,Grenada|CEMETERY HILL]]
*[[CHANTILLY, TEMPE,St.George,Grenada|CHANTILLY, TEMPE]]
*[[CHEMIN RIVER,St.George,Grenada|CHEMIN RIVER]]
*[[CHERRY HILL,St.George,Grenada|CHERRY HILL]]
*[[CHURCH STREET,St.George,Grenada|CHURCH STREET]]
*[[CIRCULAR DRIVE, FREQUENTE,St.George,Grenada|CIRCULAR DRIVE, FREQUENTE]]
*[[CLARKES COURT BAY,St.George,Grenada|CLARKES COURT BAY,]]
*[[COCOA ROAD, MARIAN,St.George,Grenada|COCOA ROAD, MARIAN]]
*[[CONFER,St.George,Grenada|CONFER]]
*[[CONSTANTINE,St.George,Grenada|CONSTANTINE]]
*[[CORBEAU TOWN,St.George,Grenada|CORBEAU TOWN]]
*[[COX ALLEY,St.George,Grenada|COX ALLEY]]
*[[CREIGHTON,St.George,Grenada|CREIGHTON]]
*[[CROSS STREET,St.George,Grenada|CROSS STREET]]
*[[D'ARBEAU,St.George,Grenada|D'ARBEAU]]
*[[DE FAUX,St.George,Grenada|DE FAUX]]
*[[DEPONTHIEU STREET,St.George,Grenada|DEPONTHIEU STREET]]
*[[DE VILLA, BLACKBURN ALLEY,St.George,Grenada|DE VILLA, BLACKBURN ALLEY]]
*[[DIXIE, SPRINGS,St.George,Grenada|DIXIE, SPRINGS]]
*[[DUSTY HIGHWAY, GRAND ANSE,St.George,Grenada|DUSTY HIGHWAY, GRAND ANSE]]
*[[EDGEMOND POINT,St.George,Grenada|EDGEMOND POINT]]
*[[FALL EDGE, GRAND ANSE,St.George,Grenada|FALL EDGE, GRAND ANSE]]
*[[FENTON VILLAGE,St.George,Grenada|FENTON VILLAGE]]
*[[FONTENOY,St.George,Grenada|FONTENOY]]
*[[FORT JUEDY,St.George,Grenada|FORT JUEDY]]
*[[FREQUENTE,St.George,Grenada|FREQUENTE]]
*[[GOLF COURSE,St.George,Grenada|GOLF COURSE]]
*[[GOOD HOPE,St.George,Grenada|GOOD HOPE]]
*[[GORE STREET,St.George,Grenada|GORE STREET]]
*[[GRAND ANSE,St.George,Grenada|GRAND ANSE]]
*[[GRAND ANSE ESTATE, LANCE AUX,St.George,Grenada|GRAND ANSE ESTATE, LANCE AUX]]
*[[GRAND ANSE HOUSING SCHEME,St.George,Grenada|GRAND ANSE HOUSING SCHEME]]
*[[GRAND ANSE VALLEY,St.George,Grenada|GRAND ANSE VALLEY]]
*[[GRAND ETANG ROAD,St.George,Grenada|GRAND ETANG ROAD]]
*[[GRAND MAL,St.George,Grenada|GRAND MAL]]
*[[GRANTON,St.George,Grenada|GRANTON]]
*[[GREEN STREET,St.George,Grenada|GREEN STREET]]
*[[GRENVILLE STREET,St.George,Grenada|GRENVILLE STREET]]
*[[GRENVILLE VALE,St.George,Grenada|GRENVILLE VALE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1394</ref>
*[[GREY STONE, BELMONT,St.George,Grenada|GREY STONE, BELMONT]]
*[[H.A BLAIZE STREET,St.George,Grenada|H.A BLAIZE STREET]]
*[[HADDON SMITH STREET,St.George,Grenada|HADDON SMITH STREET]]
*[[HALIFAX STREET,St.George,Grenada|HALIFAX STREET]]
*[[HAPPY HILL,St.George,Grenada|HAPPY HILL]]
*[[HILL TOP, CALIVIGNY,St.George,Grenada|HILL TOP, CALIVIGNY]]
*[[HILLS ROAD,St.George,Grenada|HILLS ROAD]]
*[[HILLSBOROUGH STREET,St.George,Grenada|HILLSBOROUGH STREET]]
*[[HOPE VALE,St.George,Grenada|HOPE VALE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1350</ref>
*[[INDEPENDENCE AVENUE,St.George,Grenada|INDEPENDENCE AVENUE]]
*[[JEAN ANGLIAS,St.George,Grenada|JEAN ANGLIAS]]
*[[JUMBIE,St.George,Grenada|JUMBIE]]
*[[KAFE BEAU HILL,St.George,Grenada|KAFE BEAU HILL]]
*[[LA BORIE,St.George,Grenada|LA BORIE]]
*[[LA MODE,St.George,Grenada|LA MODE]]
*[[LAGOON ROAD,St.George,Grenada|LAGOON ROAD]]
*[[LANCE AUX EPINES,St.George,Grenada|LANCE AUX EPINES]]
*[[LONG GUTTER,St.George,Grenada|LONG GUTTER]]
*[[LOWER MORNE JALOUX,St.George,Grenada|LOWER MORNE JALOUX]]
*[[LOWER WOBURN,St.George,Grenada|LOWER WOBURN]]
*[[LOWTHER'S LANE,St.George,Grenada|LOWTHER'S LANE]]
*[[LUCAS STREET,St.George,Grenada|LUCAS STREET]]
*[[MALONEY STREET,St.George,Grenada|MALONEY STREET]]
*[[MANGO, NEW HAMPSHIRE,St.George,Grenada|MANGO, NEW HAMPSHIRE]]
*[[MARIAN,St.George,Grenada|MARIAN]]
*[[MARKET HILL,St.George,Grenada|MARKET HILL]]
*[[MARRAST HILL,St.George,Grenada|MARRAST HILL]]
*[[MAURICE BISHOP HIGHWAY, GRAND ANSE,St.George,Grenada|MAURICE BISHOP HIGHWAY, GRAND ANSE]]
*[[MAURICE BISHOP HWY, GRAND,St.George,Grenada|MAURICE BISHOP HWY, GRAND]]
*[[MELVILLE STREET,St.George,Grenada|MELVILLE STREET]]
*[[MOLINIERE,St.George,Grenada|MOLINIERE]]
*[[MONT TOUTE,St.George,Grenada|MONT TOUTE]]
*[[MORNE JALOUX,St.George,Grenada|MORNE JALOUX]]
*[[MORNE ROUGE,St.George,Grenada|MORNE ROUGE]]
*[[MORTLEY ROAD,St.George,Grenada|MORTLEY ROAD]]
*[[MT. AIRY,St.George,Grenada|MT. AIRY]]
*[[MT. GAY,St.George,Grenada|MT. GAY]]
*[[MT. HARTMAN,St.George,Grenada|MT. HARTMAN]]
*[[MT. MORITZ,St.George,Grenada|MT. MORITZ]]
*[[MT. PARNASSUS,St.George,Grenada|MT. PARNASSUS]]
*[[MT. RUSH,St.George,Grenada|MT. RUSH]]
*[[MT. WHELDALE,St.George,Grenada|MT. WHELDALE]]
*[[OBSERVATORY ROAD,St.George,Grenada|OBSERVATORY ROAD]]
*[[OLD FORT,St.George,Grenada|OLD FORT]]
*[[PADDOCK,St.George,Grenada|PADDOCK]]
*[[PARADE,St.George,Grenada|PARADE]]
*[[PARK LANE,St.George,Grenada|PARK LANE]]
*[[PERSEVERANCE,St.George,Grenada|PERSEVERANCE]]
*[[PETERSFIELD,St.George,Grenada|PETERSFIELD]]
*[[POINT SALINES,St.George,Grenada|POINT SALINES]]
*[[QUEEN'S PARK,St.George,Grenada|QUEEN'S PARK]]
*[[RADIX, MT. PARNASSUS,St.George,Grenada|RADIX, MT. PARNASSUS]]
*[[RAVINE, MT. GAY,St.George,Grenada|RAVINE, MT. GAY]]
*[[RICHMOND HILL,St.George,Grenada|RICHMOND HILL]]
*[[RIVER ROAD,St.George,Grenada|RIVER ROAD]]
*[[ROEBUCK,St.George,Grenada|ROEBUCK]]
*[[SANS SOUCI,St.George,Grenada|SANS SOUCI]]
*[[SCOTT STREET,St.George,Grenada|SCOTT STREET]]
*[[SHENDA,St.George,Grenada|SHENDA]]
*[[SIMMONS STREET,St.George,Grenada|SIMMONS STREET]]
*[[SNUG CORNER,St.George,Grenada|SNUG CORNER]]
*[[SPRINGS,St.George,Grenada|SPRINGS]]
*[[ST. GEORGE ESTATE,St.George,Grenada|ST. GEORGE ESTATE]]
*[[ST. JOHN STREET,St.George,Grenada|ST. JOHN STREET]]
*[[ST. JUILLE STREET,St.George,Grenada|ST. JUILLE STREET]]
*[[ST.PAUL'S,St.George,Grenada|ST.PAUL'S]]
*[[SUNSET VALLEY, POINT SALINES,St.George,Grenada|SUNSET VALLEY, POINT SALINES]]
*[[TANTEEN, TANTEEN TERRACE,St.George,Grenada|TANTEEN, TANTEEN TERRACE]]
*[[TEMPE,St.George,Grenada|TEMPE]]
*[[TETMUND,St.George,Grenada|TETMUND]]
*[[THE BOCAS,St.George,Grenada|THE BOCAS]]
*[[THE GREENS,St.George,Grenada|THE GREENS]]
*[[THE LIMES,St.George,Grenada|THE LIMES]]
*[[THE STONES, GRAND ANSE,St.George,Grenada|THE STONES, GRAND ANSE]]
*[[THE STONES, NEW HAMPSHIRE,St.George,Grenada|THE STONES, NEW HAMPSHIRE]]
*[[THE VILLA, LONG GUTTER,St.George,Grenada|THE VILLA, LONG GUTTER]]
*[[TRANQUIL LANE,St.George,Grenada|TRANQUIL LANE]]
*[[TRUE BLUE,St.George,Grenada|TRUE BLUE]]
*[[TRYNE ALLEY,St.George,Grenada|TRYNE ALLEY]]
*[[TURTLE BACK DRIVE, LANCE AUX,St.George,Grenada|TURTLE BACK DRIVE, LANCE AUX]]
*[[TYRREL STREET,St.George,Grenada|TYRREL STREET]]
*[[UPPER MORNE JALOUX,St.George,Grenada|UPPER MORNE JALOUX]]
*[[UPPER WOBURN,St.George,Grenada|UPPER WOBURN]]
*[[VENDOME,St.George,Grenada|VENDOME]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1287</ref>
*[[WELCOME,St.George,Grenada|WELCOME]]
*[[WHITE GUN,St.George,Grenada|WHITE GUN]]
*[[WHITE HALL, PARK LANE,St.George,Grenada|WHITE HALL, PARK LANE]]
*[[WILLIAMSON ROAD,St.George,Grenada|WILLIAMSON ROAD]]
*[[WILLIS,St.George,Grenada|WILLIS]]
*[[WOODLANDS,St.George,Grenada|WOODLANDS]]
*[[WOOLWICH ROAD,St.George,Grenada|WOOLWICH ROAD]]
*[[YOUNG STREET,St.George,Grenada|YOUNG STREET]]
==[[St.John,Grenada|St.John]]==
*[[BACK STREET,St.John,Grenada|BACK STREET]]
*[[BELVIDERE,St.John,Grenada|BELVIDERE]]
*[[BLACK BAY,St.John,Grenada|BLACK BAY]]
*[[BOYKES LANE, GOUYAVE,St.John,Grenada|BOYKES LANE, GOUYAVE]]
*[[BROOKLYN,St.John,Grenada|BROOKLYN]]
*[[BROTHERS ESTATE,St.John,Grenada|BROTHERS ESTATE]]
*[[CENTRAL DEPRADINE STREET,St.John,Grenada|CENTRAL DEPRADINE STREET]]
*[[CLOZIER,St.John,Grenada|CLOZIER]]
*[[CONCORD,St.John,Grenada|CONCORD]]
*[[CORNETS WALK, GOUYAVE,St.John,Grenada|CORNETS WALK, GOUYAVE]]
*[[COTTON BAILY,St.John,Grenada|COTTON BAILY]]
*[[D LANCE, UPPER DEPRADINE,St.John,Grenada|D LANCE, UPPER DEPRADINE]]
*[[DOCTOR BELLE,St.John,Grenada|DOCTOR BELLE]]
*[[DOUGALDSTON,St.John,Grenada|DOUGALDSTON]]
*[[EDWARD STREET, GOUYAVE,St.John,Grenada|EDWARD STREET, GOUYAVE]]
*[[FERGUSON'S LANE,St.John,Grenada|FERGUSON'S LANE]]
*[[FLORIDA,St.John,Grenada|FLORIDA]]
*[[GOUYAVE ESTATE,St.John,Grenada|GOUYAVE ESTATE]]
*[[GRAND ROY,St.John,Grenada|GRAND ROY]]
*[[HILLSVIEW, GOUYAVE,St.John,Grenada|HILLSVIEW, GOUYAVE]]
*[[LANGTON ROAD, GOUYAVE,St.John,Grenada|LANGTON ROAD, GOUYAVE]]
*[[LOWER DEPRADINE STREET,St.John,Grenada|LOWER DEPRADINE STREET]]
*[[MARIGOT,St.John,Grenada|MARIGOT]]
*[[MITCHELL'S LANE,St.John,Grenada|MITCHELL'S LANE]]
*[[MONGO ROAD, GOUYAVE ESTATE,St.John,Grenada|MONGO ROAD, GOUYAVE ESTATE]]
*[[MT. GRANBY,St.John,Grenada|MT. GRANBY]]
*[[MT. NESBIT,St.John,Grenada|MT. NESBIT]]
*[[NEW STREET, EDWARD STREET,St.John,Grenada|NEW STREET, EDWARD STREET]]
*[[NEW STREET, GOUYAVE,St.John,Grenada|NEW STREET, GOUYAVE]]
*[[PALMISTE,St.John,Grenada|PALMISTE]]
*[[QUEEN STREET, ST. JOHN'S,St.John,Grenada|QUEEN STREET, ST. JOHN'S]]
*[[RENNIE,St.John,Grenada|RENNIE]]
*[[RIVER LANE, GOUYAVE ESTATE,St.John,Grenada|RIVER LANE, GOUYAVE ESTATE]]
*[[RIVER LANE, GOUYAVE,St.John,Grenada|RIVER LANE, GOUYAVE]]
*[[ROSEMOUNT,St.John,Grenada|ROSEMOUNT]]
*[[SCHOOL LANE, GOUYAVE,St.John,Grenada|SCHOOL LANE, GOUYAVE]]
*[[ST BENOIT STREET, GOUYAVE,St.John,Grenada|ST BENOIT STREET, GOUYAVE]]
*[[ST DOMINIC STREET, GOUYAVE,St.John,Grenada|ST DOMINIC STREET, GOUYAVE]]
*[[ST DOMINIC, GOUYAVE,St.John,Grenada|ST DOMINIC, GOUYAVE]]
*[[ST FRANCIS, GOUYAVE,St.John,Grenada|ST FRANCIS, GOUYAVE]]
*[[ST PETERS STREET, GOUYAVE,St.John,Grenada|ST PETERS STREET, GOUYAVE]]
*[[ST PETERS, GOUYAVE,St.John,Grenada|ST PETERS, GOUYAVE]]
*[[ST. FRANCIS STREET,St.John,Grenada|ST. FRANCIS STREET]]
*[[ST. PETER STREET,St.John,Grenada|ST. PETER STREET]]
*[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]]
*[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]]
*[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]]
*[[UPPER DEPRADINE STREET,St.John,Grenada|UPPER DEPRADINE STREET]]
*[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]]
*[[VICTORIA ROAD, GOUYAVE,St.John,Grenada|VICTORIA ROAD, GOUYAVE]]
*[[VICTORIA STREET,St.John,Grenada|VICTORIA STREET]]
*[[WATERLOO,St.John,Grenada|WATERLOO]]
*[[WOODFORD,St.John,Grenada|WOODFORD]]
==[[St.David,Grenada|St.David]]==
*[[APRES TOUTE,St.David,Grenada|APRES TOUTE]]
*[[BAILLES BACOLET,St.David,Grenada|BAILLES BACOLET]]
*[[BEATON,St.David,Grenada|BEATON]]
*[[BELLE ISLE,St.David,Grenada|BELLE ISLE]]
*[[BELLE VUE,St.David,Grenada|BELLE VUE]]
*[[BOCAGE,St.David,Grenada|BOCAGE]]
*[[CHAMPFLEURS,St.David,Grenada|CHAMPFLEURS]]
*[[COALS GAPS,St.David,Grenada|COALS GAPS]]
*[[CONTENT,St.David,Grenada|CONTENT]]
*[[CORINTH,St.David,Grenada|CORINTH]]
*[[DUDMAR,St.David,Grenada|DUDMAR]]
*[[EPPIN FOREST,St.David,Grenada|EPPIN FOREST]]
*[[HARMONY HALL,St.David,Grenada|HARMONY HALL]]
*[[LA CALOHME,St.David,Grenada|LA CALOHME]]
*[[LA FEMME,St.David,Grenada|LA FEMME]]
*[[LA FLORETTA,St.David,Grenada|LA FLORETTA]]
*[[LA PASTORA,St.David,Grenada|LA PASTORA]]
*[[LA SAGESSE,St.David,Grenada|LA SAGESSE]]
*[[LA TANTE,St.David,Grenada|LA TANTE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1363</ref>
*[[MARLMOUNT,St.David,Grenada|MARLMOUNT]]
*[[MARDIGRAS,St.David,Grenada|MARDIGRAS]]
*[[MARLMOUNT, GLEBE LAND,St.David,Grenada|MARLMOUNT, GLEBE LAND]]
*[[MAULTY,St.David,Grenada|MAULTY]]
*[[MAYANN, CONSTANTINE,St.David,Grenada|MAYANN, CONSTANTINE]]
*[[MINORCA,St.David,Grenada|MINORCA]]
*[[MORNE DELICE,St.David,Grenada|MORNE DELICE]]
*[[MON REPOS,St.David,Grenada|MON REPOS]]
*[[MT. AGNES,St.David,Grenada|MT. AGNES]]
*[[MT. DISIRE,St.David,Grenada|MT. DISIRE]]
*[[MT. ROSE,St.David,Grenada|MT. ROSE]]
*[[MYANN, CONSTANTINE,St.David,Grenada|MYANN, CONSTANTINE]]
*[[NEW WESTERHALL,St.David,Grenada|NEW WESTERHALL]]
*[[OLD WESTERHALL,St.David,Grenada|OLD WESTERHALL]]
*[[PERDMONTEMPS,St.David,Grenada|PERDMONTEMPS]]
*[[PETITE BACAYE, NEW,St.David,Grenada|PETITE BACAYE, NEW]]
*[[PETITE ESPERANCE,St.David,Grenada|PETITE ESPERANCE]]
*[[PETITE ETANG,St.David,Grenada|PETITE ETANG]]
*[[POMME ROSE,St.David,Grenada|POMME ROSE]]
*[[RED GATE,St.David,Grenada|RED GATE]]
*[[REDMUD,St.David,Grenada|REDMUD]]
*[[REQUIN,St.David,Grenada|REQUIN]]
*[[SLINGER STREET,St.David,Grenada|SLINGER STREET]]
*[[SYRACUSE,St.David,Grenada|SYRACUSE]]
*[[THEBAIDE,St.David,Grenada|THEBAIDE]]
*[[TABOR,St.David,Grenada|TABOR]]
*[[UPPER LAURA,St.David,Grenada|UPPER LAURA]]
*[[VINCENNES,St.David,Grenada|VINCENNES]]
*[[WESTERHALL POINT,St.David,Grenada|WESTERHALL POINT]]
*[[WINDSOR,St.David,Grenada|WINDSOR]]
*[[WINDSOR FOREST,St.David,Grenada|WINDSOR FOREST]]
==[[Carriacou and Petite Martinique,Grenada|Carriacou and Petite Martinique]]==
*[[BAYALEAU,Carriacou,Grenada|BAYALEAU]]
*[[BEAUSEJOUR,Carriacou,Grenada|BEAUSEJOUR]]
*[[BELAIR,Carriacou,Grenada|BELAIR]]
*[[BELLE VUE,Carriacou,Grenada|BELLE VUE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1237</ref>
*[[BELMONT,Carriacou,Grenada|BELMONT]]
*[[BOGLES,Carriacou,Grenada|BOGLES]]
*[[BRUNSWICK,Carriacou,Grenada|BRUNSWICK]]
*[[CHURCH STREET, HILLSBOROUGH,Carriacou,Grenada|CHURCH STREET, HILLSBOROUGH]]
*[[CRAIGSTON,Carriacou,Grenada|CRAIGSTON]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1385]</ref>
*[[CHERRY HILL,Carriacou,Grenada|CHERRY HILL]]
*[[DOVER,Carriacou,Grenada|DOVER]]
*[[DUMFRIES,Carriacou,Grenada|DUMFRIES]]
*[[GRAND BAY,Carriacou,Grenada|GRAND BAY]]
*[[HARVEY VALE,Carriacou,Grenada|HARVEY VALE]]
*[[HERMITAGE,Carriacou,Grenada|HERMITAGE]]
*[[HILLSBOROUGH,Carriacou,Grenada|HILLSBOROUGH]]
*[[L'ESTERRE,Carriacou,Grenada|L'ESTERRE]]
*[[LAURISTON,Carriacou,Grenada|LAURISTON]]
*[[LIMLAIR,Carriacou,Grenada|LIMLAIR]]
*[[MELDRUM,Carriacou,Grenada|MELDRUM]]
*[[MT. DESIRE,Carriacou,Grenada|MT. DESIRE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1237</ref>
*[[MT. PLEASANT,Carriacou,Grenada|MT. PLEASANT]]
*[[MT. ST ERVANS, L'ESTERRIE,Carriacou,Grenada|MT ST ERVANS, L'ESTERRIE]]
*[[MT. ROYAL,Carriacou,Grenada|MT. ROYAL]]
*[[PROSPECT HALL,Carriacou,Grenada|PROSPECT HALL]]
*[[SIX ROADS,Carriacou,Grenada|SIX ROADS]]
*[[TOP HILL,Carriacou,Grenada|TOP HILL]]
*[[WINDWARD,Carriacou,Grenada|WINDWARD]]
*[[PETITE MARTINIQUE,PETIT MARTINIQUE,Grenada|PETITE MARTINIQUE]]
==[[St.Andrew,Grenada|St.Andrew]]==
*[[MT. FANN,St. Andrew,Grenada|MT. FANN]]
*[[ADELPHI,St.Andrew,Grenada|ADELPHI]]
*[[AHOMA,St.Andrew,Grenada|AHOMA]]
*[[BALTHAZAR,St.Andrew,Grenada|BALTHAZAR]]
*[[BAYROAD,St.Andrew,Grenada|BAYROAD]]
*[[BLAIZE,St.Andrew,Grenada|BLAIZE]]
*[[BAMBOO,St.Andrew,Grenada|BAMBOO]]
*[[BATTLE HILL,St.Andrew,Grenada|BATTLE HILL]]
*[[BEAUREGARD,St.Andrew,Grenada|BEAUREGARD]]
*[[BELLE VUE,St.Andrew,Grenada|BELLE VUE]]
*[[BELVEDERE,St.Andrew,Grenada|BELVEDERE]]
*[[BEN JONES STREET,St.Andrew,Grenada|BEN JONES STREET]]
*[[BIRCHGROVE,St.Andrew,Grenada|BIRCHGROVE]]
*[[BYELANDS,St.Andrew,Grenada|BYELANDS]]
*[[CAFE,St.Andrew,Grenada|CAFE]]
*[[CANAL ROAD,St.Andrew,Grenada|CANAL ROAD]]
*[[CARRIERE,St.Andrew,Grenada|CARRIERE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1305</ref>
*[[CARRUTH,St.Andrew,Grenada|CARRUTH]]
*[[CASTIGNE,St.Andrew,Grenada|CASTIGNE]]
*[[CHAPEL ROAD,St.Andrew,Grenada|CHAPEL ROAD]]
*[[COCOA ROAD,St.Andrew,Grenada|COCOA ROAD]]
*[[CODRONA,St.Andrew,Grenada|CODRONA]]
*[[UPPER CONFERENCE,St.Andrew,Grenada|UPPER CONFERENCE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1306</ref>
*[[LOWER CONFERENCE,St.Andrew,Grenada|LOWER CONFERENCE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1307</ref>
*[[COOKHILL ROAD,St.Andrew,Grenada|COOKHILL ROAD]]
*[[CROCHU,St.Andrew,Grenada|CROCHU]]
*[[DE BLANDEAU,St.Andrew,Grenada|DE BLANDEAU]]
*[[DUNFERMLINE,St.Andrew,Grenada|DUNFERMLINE]]
*[[DURRANT ROAD,St.Andrew,Grenada|DURRANT ROAD]]
*[[FORD HILL ROAD,St.Andrew,Grenada|FORD HILL ROAD]]
*[[FELIX PARK,St.Andrew,Grenada|FELIX PARK]]
*[[GRANLETTE,St.Andrew,Grenada|GRANLETTE]]
*[[GEORGE V. STREET,St.Andrew,Grenada|GEORGE V. STREET]]
*[[GLADSTONE ROAD,St.Andrew,Grenada|GLADSTONE ROAD]]
*[[GOUYAVE,St.Andrew,Grenada|GOUYAVE]]
*[[GRAND BACOLET,St.Andrew,Grenada|GRAND BACOLET]]
*[[GRAND BRAS,St.Andrew,Grenada|GRAND BRAS]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1303</ref>
*[[GRIFFIN LANE,St.Andrew,Grenada|GRIFFIN LANE]]
*[[GUPO,St.Andrew,Grenada|GUPO]]
*[[HARFORD VILLAGE,St.Andrew,Grenada|HARFORD VILLAGE]]
*[[HERMON,St.Andrew,Grenada|HERMON]]
*[[HILLS ROAD, LOWER,St.Andrew,Grenada|HILLS ROAD]]
*[[HOPE,St.Andrew,Grenada|HOPE]]
*[[HOPE CITY,St.Andrew,Grenada|HOPE CITY]]
*[[LA DIGUE,St.Andrew,Grenada|LA DIGUE]]
*[[LA FILLETTE,St.Andrew,Grenada|LA FILLETTE]]
*[[LA POTERIE,St.Andrew,Grenada|LA POTERIE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/13121</ref>
*[[L'ESTERRIE,St.Andrew,Grenada|L'ESTERRIE]]
*[[LOWER CAPITOL,St.Andrew,Grenada|LOWER CAPITOL]]
*[[LOWER HARFORD VILLAGE,St.Andrew,Grenada|LOWER HARFORD VILLAGE]]
*[[MAHOUT,St.Andrew,Grenada|MAHOUT]]
*[[MAMMA CANNES,St.Andrew,Grenada|MAMMA CANNES]]
*[[MARQUIS,St.Andrew,Grenada|MARQUIS]]
*[[MC NELLIE ALLEY, SAUTEURS,St.Andrew,Grenada|MC NELLIE ALLEY, SAUTEURS]]
*[[MC NEILLY, SAUTEURS,St.Andrew,Grenada|MC NEILLY, SAUTEURS]]
*[[MEADOW,St.Andrew,Grenada|MEADOW]]
*[[MELDRUM,St.Andrew,Grenada|MELDRUM]]
*[[MIRABEAU,St.Andrew,Grenada|MIRABEAU]]
*[[MORNE LOUNGE,St.Andrew,Grenada|MORNE LOUNGE]]
*[[MOYAH,St.Andrew,Grenada|MOYAH]]
*[[MT. ST ERVANS, LA DIGUE,St.Andrew,Grenada|MT ST ERVANS, LA DIGUE]]
*[[MT. CARMEL,St.Andrew,Grenada|MT. CARMEL]]
*[[MT. HORNE,St.Andrew,Grenada|MT. HORNE]]
*[[MT. PLEASANT,St.Andrew,Grenada|MT. PLEASANT]]
*[[MT. SEALEY,St.Andrew,Grenada|MT. SEALEY]]
*[[MUNICH,St.Andrew,Grenada|MUNICH]]
*[[NEW HAMPSHIRE,St.Andrew,Grenada|NEW HAMPSHIRE]]
*[[NOELSVILLE,St.Andrew,Grenada|NOELSVILLE]]
*[[PARACLETE,St.Andrew,Grenada|PARACLETE]]
*[[PARADISE,St.Andrew,Grenada|PARADISE]]
*[[PEARLS,St.Andrew,Grenada|PEARLS]]
*[[PLATEAU,St.Andrew,Grenada|PLATEAU]]
*[[PLEASANCE,St.Andrew,Grenada|PLEASANCE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/99</ref>
*[[POST ROYAL,St.Andrew,Grenada|POST ROYAL]]
*[[PROVIDENCE,St.Andrew,Grenada|PROVIDENCE]]
*[[RETREAT,St.Andrew,Grenada|RETREAT]]
*[[RICHMOND,St.Andrew,Grenada|RICHMOND]]
*[[RIVULET LANE,St.Andrew,Grenada|RIVULET LANE]]
*[[SABB,St.Andrew,Grenada|SABB]]
*[[SALISBURY ROAD,St.Andrew,Grenada|SALISBURY ROAD]]
*[[SAMUEL AVENUE, CALIVIGNY,St.Andrew,Grenada|SAMUEL AVENUE, CALIVIGNY]]
*[[SEATON BROWNE STREET,St.Andrew,Grenada|SEATON BROWNE STREET]]
*[[SEATON JAMES STREET,St.Andrew,Grenada|SEATON JAMES STREET]]
*[[SENDALL STREET,St.Andrew,Grenada|SENDALL STREET]]
*[[SIMON,St.Andrew,Grenada|SIMON]]
*[[SNELL HALL,St.Andrew,Grenada|SNELL HALL]]
*[[SOUBISE,St.Andrew,Grenada|SOUBISE]]
*[[SPRING GARDEN,St.Andrew,Grenada|SPRING GARDEN]]
*[[ST. CLOUDS,St.Andrew,Grenada|ST. CLOUDS]]
*[[ST. JAMES,St.Andrew,Grenada|ST. JAMES]]
*[[ST. JOHNS,St.Andrew,Grenada|ST. JOHNS]]
*[[TOUS CONGO,St.Andrew,Grenada|TOUS CONGO]]
*[[TELESCOPE,St.Andrew,Grenada|TELESCOPE]]
*[[TIVOLI,St.Andrew,Grenada|TIVOLI]]
*[[TUILLIERIES,St.Andrew,Grenada|TUILLIERIES]]
*[[UNION,St.Andrew,Grenada|UNION]]
*[[UPPER CAPITOL,St.Andrew,Grenada|UPPER CAPITOL]]
*[[THE VILLA,St.Andrew,Grenada|THE VILLA]]
*[[VILLAGE ROAD,St.Andrew,Grenada|VILLAGE ROAD]]
*[[VICTORIA STREET,St.Andrew,Grenada|VICTORIA STREET]]
*[[WALKER,St.Andrew,Grenada|WALKER]]
*[[WELLS ROAD,St.Andrew,Grenada|WELLS ROAD]]
==[[St.Mark,Grenada|St.Mark]]==
*[[BOCAGE,St.Mark,Grenada|BOCAGE]]
*[[BOCAGE, BONAIR,St.Mark,Grenada|BOCAGE, BONAIR]]
*[[BONAIR,St.Mark,Grenada|BONAIR]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1366</ref>
*[[BONIAR ROAD, BONAIR,St.Mark,Grenada|BONIAR ROAD, BONAIR]]
*[[CHARLOTTE VALE,St.Mark,Grenada|CHARLOTTE VALE]]
*[[COAST GUARD,St.Mark,Grenada|COAST GUARD]]
*[[CRUICKSHANK ROAD,St.Mark,Grenada|CRUICKSHANK ROAD]]
*[[CRUICKSHANK ROAD, VICTORIA,St.Mark,Grenada|CRUICKSHANK ROAD, VICTORIA]]
*[[DARVEY,St.Mark,Grenada|DARVEY]]
*[[DE VILLA,St.Mark,Grenada|DE VILLA]]
*[[DIAMOND ESTATE,St.Mark,Grenada|DIAMOND ESTATE]]
*[[DIAMOND STREET, VICTORIA,St.Mark,Grenada|DIAMOND STREET, VICTORIA]]
*[[DIEGO PIECE,St.Mark,Grenada|DIEGO PIECE]]
*[[DUQUESNE,St.Mark,Grenada|DUQUESNE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1367</ref>
*[[FAIR FIELD ROAD, VICTORIA,St.Mark,Grenada|FAIR FIELD ROAD, VICTORIA]]
*[[GALL STREET, VICTORIA,St.Mark,Grenada|GALL STREET, VICTORIA]]
*[[GROSS POINT, GROSS POINT VILLA,St.Mark,Grenada|GROSS POINT, GROSS POINT VILLA]]
*[[INDUSTRY,St.Mark,Grenada|INDUSTRY]]
*[[LA RESOURCE,St.Mark,Grenada|LA RESOURCE]]
*[[MARAN,St.Mark,Grenada|MARAN]]
*[[MT. EDGECOMBE,St.Mark,Grenada|MT. EDGECOMBE]]
*[[MUNRO STREET, VICTORIA,St.Mark,Grenada|MUNRO STREET, VICTORIA]]
*[[NON-PARIEL,St.Mark,Grenada|NON-PARIEL]]
*[[PETIT BOCAGE,St.Mark,Grenada|PETIT BOCAGE]]
*[[QUEEN STREET, VICTORIA,St.Mark,Grenada|QUEEN STREET, VICTORIA]]
*[[RESOURCE,St.Mark,Grenada|RESOURCE]]
*[[RESOURCE, RESOURCE,St.Mark,Grenada|RESOURCE, RESOURCE]]
*[[RIVER SALLEE,St.Mark,Grenada|RIVER SALLEE]]
*[[SAMARITAN,St.Mark,Grenada|SAMARITAN]]
*[[SAMARITAN, DIEGO PIECE,St.Mark,Grenada|SAMARITAN, DIEGO PIECE]]
*[[ST DAVID STREET, VICTORIA,St.Mark,Grenada|ST DAVID STREET, VICTORIA]]
*[[ST JOHN STREET, VICTORIA,St.Mark,Grenada|ST JOHN STREET, VICTORIA]]
*[[STEWAD COTTAGE,St.Mark,Grenada|STEWAD COTTAGE]]
*[[VICTORIA,St.Mark,Grenada|VICTORIA]]
*[[WALTHAM,St.Mark,Grenada|WALTHAM]]
==[[St.Patrick,Grenada|St.Patrick]]==
*[[BATHWAY,St.Patrick,Grenada|BATHWAY]]
*[[BAY ROAD, SAUTEURS,St.Patrick,Grenada|BAY ROAD, SAUTEURS]]
*[[BELMONT,St.Patrick,Grenada|BELMONT]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1317</ref>
*[[CEDARS,St.Patrick,Grenada|CEDARS]]
*[[CHANTIMELLE,St.Patrick,Grenada|CHANTIMELLE]]
*[[CROSS STREET, SAUTEURS,St.Patrick,Grenada|CROSS STREET, SAUTEURS]]
*[[GLEBE LAND, SAUTEURS,St.Patrick,Grenada|GLEBE LAND, SAUTEURS]]
*[[GLEBE STREET, SAUTEURS,St.Patrick,Grenada|GLEBE STREET, SAUTEURS]]
*[[HERMITAGE,St.Patrick,Grenada|HERMITAGE]]
*[[HIGH GATE, MORNE FENDUE,St.Patrick,Grenada|HIGH GATE, MORNE FENDUE]]
*[[HIGH STREET, SAUTEURS,St.Patrick,Grenada|HIGH STREET, SAUTEURS]]
*[[HILL STREET, SAUTEURS,St.Patrick,Grenada|HILL STREET, SAUTEURS]]
*[[LA FORTUNE,St.Patrick,Grenada|LA FORTUNE]]
*[[LA TASTE,St.Patrick,Grenada|LA TASTE]]
*[[LEVERA,St.Patrick,Grenada|LEVERA]]
*[[MADEYS,St.Patrick,Grenada|MADEYS]]
*[[MAHOUT, ROSE HILL,St.Patrick,Grenada|MAHOUT, ROSE HILL]]
*[[MAIN STREET, SAUTEURS,St.Patrick,Grenada|MAIN STREET, SAUTEURS]]
*[[MARLI,St.Patrick,Grenada|MARLI]]
*[[MC NEILLY ALLEY, MARLI,St.Patrick,Grenada|MC NEILLY ALLEY, MARLI]]
*[[MC NELLIE ALLEY, SAUTEURS,St.Patrick,Grenada|MC NELLIE ALLEY, SAUTEURS]]
*[[MORNE FENDUE,St.Patrick,Grenada|MORNE FENDUE]]
*[[MT. CRAVEN,St.Patrick,Grenada|MT. CRAVEN]]
*[[MT. RICH,St.Patrick,Grenada|MT. RICH]]
*[[MT. ROSE,St.Patrick,Grenada|MT. ROSE]]
*[[PEGGYS WHIM, HERMITAGE,St.Patrick,Grenada|PEGGYS WHIM, HERMITAGE]]
*[[PLAINS,St.Patrick,Grenada|PLAINS]]
*[[POINTZFIELD,St.Patrick,Grenada|POINTZFIELD]]
*[[PROSPECT,St.Patrick,Grenada|PROSPECT]]
*[[RED HEAD STREET, LA FORTUNE,St.Patrick,Grenada|RED HEAD STREET, LA FORTUNE]]
*[[RED HEAD STREET, SAUTEURS,St.Patrick,Grenada|RED HEAD STREET, SAUTEURS]]
*[[RED MUD,St.Patrick,Grenada|RED MUD]]
*[[RIVER SALLEE,St.Patrick,Grenada|RIVER SALLEE]]
*[[ROSE HILL,St.Patrick,Grenada|ROSE HILL]]
*[[SALISBURY RD, SAUTEURS,St.Patrick,Grenada|SALISBURY RD, SAUTEURS]]
*[[SALISBURY STREET, SAUTEURS,St.Patrick,Grenada|SALISBURY STREET, SAUTEURS]]
*[[SAUTEURS,St.Patrick,Grenada|SAUTEURS]]
*[[THE VILLA, SAUTEURS,St.Patrick,Grenada|THE VILLA, SAUTEURS]]
== Uncategorized==
*[[ADAM'S ALLEY,,Grenada|ADAM'S ALLEY]]
*[[AFRICA,,Grenada|AFRICA]]
*[[APSLEY HILL,,Grenada|APSLEY HILL]]
*[[BLUGGO,,Grenada|BLUGGO]]
*[[BYWAY,,Grenada|BYWAY]]
*[[CELESTE,,Grenada|CELESTE]]
*[[CENTRAL DEPRADINE, GOUYAVE,,Grenada|CENTRAL DEPRADINE, GOUYAVE]]
*[[CHADDEAU,,Grenada|CHADDEAU]]
*[[CHANCERY STREET, MUNRO,,Grenada|CHANCERY STREET, MUNRO]]
*[[CHAPEL'S LANE,,Grenada|CHAPEL'S LANE]]
*[[CHURCH HILL ROAD,,Grenada|CHURCH HILL ROAD]]
*[[COOPER'S HILL,,Grenada|COOPER'S HILL]]
*[[CORNWALL STREET, SAUTEURS,,Grenada|CORNWALL STREET, SAUTEURS]]
*[[DE SILLES,,Grenada|DE SILLES]]
*[[DEHAR, GLEBE LAND,,Grenada|DEHAR, GLEBE LAND]]
*[[DOTHAN ESTATE,,Grenada|DOTHAN ESTATE]]
*[[DURRANT ROAD,,Grenada|DURRANT ROAD]]
*[[FENCE,,Grenada|FENCE]]
*[[FERGUSONS LANE, GOUYAVE,,Grenada|FERGUSONS LANE, GOUYAVE]]
*[[FIELD STREET,,Grenada|FIELD STREET]]
*[[FOUNTAIN,,Grenada|FOUNTAIN]]
*[[GLEBE LAND, SAUTEURS,,Grenada|GLEBE LAND, SAUTEURS]]
*[[GRAVEL STREET, VENDOME,,Grenada|GRAVEL STREET, VENDOME]]
*[[GROSS POINT VILLA,,Grenada|GROSS POINT VILLA]]
*[[HENRY STREET,,Grenada|HENRY STREET]]
*[[JONES ROAD,,Grenada|JONES ROAD]]
*[[LOWER CONFERENCE,,Grenada|LOWER CONFERENCE]]
*[[LOWER DEPRADINE, GOUYAVE,,Grenada|LOWER DEPRADINE, GOUYAVE]]
*[[LOWER LAURA,,Grenada|LOWER LAURA]]
*[[LYDER,,Grenada|LYDER]]
*[[MAHOUT, SAUTEURS,,Grenada|MAHOUT, SAUTEURS]]
*[[MAIN STREET, SAUTEURS,,Grenada|MAIN STREET, SAUTEURS]]
*[[MALIGNON,,Grenada|MALIGNON]]
*[[MARINE VILLA,,Grenada|MARINE VILLA]]
*[[MAUCHETTE,,Grenada|MAUCHETTE]]
*[[MC LAINE ALLEY, SAUTEURS,,Grenada|MC LAINE ALLEY, SAUTEURS]]
*[[MELROSE,,Grenada|MELROSE]]
*[[MT. ALEXANDER,,Grenada|MT. ALEXANDER]]
*[[MT. ANON,,Grenada|MT. ANON]]
*[[MT. CUMMA,,Grenada|MT. CUMMA]]
*[[MT. FELIX,,Grenada|MT. FELIX]]
*[[MT. PLASIR,,Grenada|MT. PLASIR]]
*[[MT. REUIL,,Grenada|MT. REUIL]]
*[[MT. RODNEY,,Grenada|MT. RODNEY]]
*[[MT. WILLIAMS,,Grenada|MT. WILLIAMS]]
*[[MUNRO STREET,,Grenada|MUNRO STREET]]
*[[MUNROE STREET, VICTORIA,,Grenada|MUNROE STREET, VICTORIA]]
*[[NETTLE POINT,,Grenada|NETTLE POINT]]
*[[NEW GARDENS,,Grenada|NEW GARDENS]]
*[[OTTLEY'S LANE,,Grenada|OTTLEY'S LANE]]
*[[PARK ESTATE,,Grenada|PARK ESTATE]]
*[[PENNY RETREAT,,Grenada|PENNY RETREAT]]
*[[SAMUELS AVENUE,,Grenada|SAMUELS AVENUE]]
*[[SAUTEURS, MAHOUT,,Grenada|SAUTEURS, MAHOUT]]
*[[SCHOOL LANE,,Grenada|SCHOOL LANE]]
*[[ST. BENOIT'S STREET,,Grenada|ST. BENOIT'S STREET]]
*[[ST. CYR,,Grenada|ST. CYR]]
*[[ST. DAVID STREET,,Grenada|ST. DAVID STREET]]
*[[ST. DOMINIC'S ST.,,Grenada|ST. DOMINIC'S ST.]]
*[[TAYBAKAY,,Grenada|TAYBAKAY]]
*[[TAYLOR,,Grenada|TAYLOR]]
*[[THE SUMMIT,,Grenada|THE SUMMIT]]
*[[THE VILLA, THE ROCK,,Grenada|THE VILLA, THE ROCK]]
*[[VINEYARD,,Grenada|VINEYARD]]
955704b66be6ef1863072f0abecd19022869ec7f
190
184
2024-11-04T23:16:40Z
104.245.95.81
0
wikitext
text/x-wiki
This is a list of populated villages, towns, settlements, and streets in Grenada. Many of the village names in Grenada are based upon the names of plantations. Grenada has 7 Parishes
==[[St.George,Grenada|St.George]]==
*[[ANNANDALE,St.George,Grenada|ANNANDALE]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/100 Annandale Estate - Legacies of British Slavery - UCL]</ref>
*[[ARCHIBALD AVENUE,St.George,Grenada|ARCHIBALD AVENUE]]
*[[BACK STREET, TEMPE,St.George,Grenada|BACK STREET, TEMPE]]
*[[BAIN'S ALLEY,St.George,Grenada|BAIN'S ALLEY]]
*[[BEAULIEU,St.George,Grenada|BEAULIEU]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1320 <nowiki>Beaulieu [ Grenada | St George ] - UCL</nowiki>]</ref>
*[[BELMONT,St.George,Grenada|BELMONT]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1290</ref>
*[[BLACK FOREST, VENDOME,St.George,Grenada|BLACK FOREST, VENDOME]]
*[[BLACKBURN ALLEY,St.George,Grenada|BLACKBURN ALLEY]]
*[[BOCA,St.George,Grenada|BOCA]]
*[[BON ACCORD ESTATE,St.George,Grenada|BON ACCORD ESTATE]]
*[[BOTANICAL GARDENS,St.George,Grenada|BOTANICAL GARDENS]]
*[[BRIGG'S ALLEY,St.George,Grenada|BRIGG'S ALLEY]]
*[[BRIZAN,St.George,Grenada|BRIZAN]]
*[[CAFE,St.George,Grenada|CAFE]]
*[[CALABASH ALLEY,St.George,Grenada|CALABASH ALLEY]]
*[[CALIVIGNY,St.George,Grenada|CALIVIGNY]]
*[[CALLISTE,St.George,Grenada|CALLISTE]]
*[[CARENAGE,St.George,Grenada|CARENAGE]]
*[[CARRIERE,St.George,Grenada|CARRIERE]]
*[[CEMETERY HILL,St.George,Grenada|CEMETERY HILL]]
*[[CHANTILLY, TEMPE,St.George,Grenada|CHANTILLY, TEMPE]]
*[[CHEMIN RIVER,St.George,Grenada|CHEMIN RIVER]]
*[[CHERRY HILL,St.George,Grenada|CHERRY HILL]]
*[[CHURCH STREET,St.George,Grenada|CHURCH STREET]]
*[[CIRCULAR DRIVE, FREQUENTE,St.George,Grenada|CIRCULAR DRIVE, FREQUENTE]]
*[[CLARKES COURT BAY,St.George,Grenada|CLARKES COURT BAY,]]
*[[COCOA ROAD, MARIAN,St.George,Grenada|COCOA ROAD, MARIAN]]
*[[CONFER,St.George,Grenada|CONFER]]
*[[CONSTANTINE,St.George,Grenada|CONSTANTINE]]
*[[CORBEAU TOWN,St.George,Grenada|CORBEAU TOWN]]
*[[COX ALLEY,St.George,Grenada|COX ALLEY]]
*[[CREIGHTON,St.George,Grenada|CREIGHTON]]
*[[CROSS STREET,St.George,Grenada|CROSS STREET]]
*[[D'ARBEAU,St.George,Grenada|D'ARBEAU]]
*[[DE FAUX,St.George,Grenada|DE FAUX]]
*[[DEPONTHIEU STREET,St.George,Grenada|DEPONTHIEU STREET]]
*[[DE VILLA, BLACKBURN ALLEY,St.George,Grenada|DE VILLA, BLACKBURN ALLEY]]
*[[DIXIE, SPRINGS,St.George,Grenada|DIXIE, SPRINGS]]
*[[DUSTY HIGHWAY, GRAND ANSE,St.George,Grenada|DUSTY HIGHWAY, GRAND ANSE]]
*[[EDGEMOND POINT,St.George,Grenada|EDGEMOND POINT]]
*[[FALL EDGE, GRAND ANSE,St.George,Grenada|FALL EDGE, GRAND ANSE]]
*[[FENCE,,Grenada|FENCE]]
*[[FENTON VILLAGE,St.George,Grenada|FENTON VILLAGE]]
*[[FONTENOY,St.George,Grenada|FONTENOY]]
*[[FORT JUEDY,St.George,Grenada|FORT JUEDY]]
*[[FREQUENTE,St.George,Grenada|FREQUENTE]]
*[[GOLF COURSE,St.George,Grenada|GOLF COURSE]]
*[[GOOD HOPE,St.George,Grenada|GOOD HOPE]]
*[[GORE STREET,St.George,Grenada|GORE STREET]]
*[[GRAND ANSE,St.George,Grenada|GRAND ANSE]]
*[[GRAND ANSE ESTATE, LANCE AUX,St.George,Grenada|GRAND ANSE ESTATE, LANCE AUX]]
*[[GRAND ANSE HOUSING SCHEME,St.George,Grenada|GRAND ANSE HOUSING SCHEME]]
*[[GRAND ANSE VALLEY,St.George,Grenada|GRAND ANSE VALLEY]]
*[[GRAND ETANG ROAD,St.George,Grenada|GRAND ETANG ROAD]]
*[[GRAND MAL,St.George,Grenada|GRAND MAL]]
*[[GRANTON,St.George,Grenada|GRANTON]]
*[[GRAVEL STREET, VENDOME,,Grenada|GRAVEL STREET, VENDOME]]
*[[GREEN STREET,St.George,Grenada|GREEN STREET]]
*[[GRENVILLE STREET,St.George,Grenada|GRENVILLE STREET]]
*[[GRENVILLE VALE,St.George,Grenada|GRENVILLE VALE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1394</ref>
*[[GREY STONE, BELMONT,St.George,Grenada|GREY STONE, BELMONT]]
*[[H.A BLAIZE STREET,St.George,Grenada|H.A BLAIZE STREET]]
*[[HADDON SMITH STREET,St.George,Grenada|HADDON SMITH STREET]]
*[[HALIFAX STREET,St.George,Grenada|HALIFAX STREET]]
*[[HAPPY HILL,St.George,Grenada|HAPPY HILL]]
*[[HILL TOP, CALIVIGNY,St.George,Grenada|HILL TOP, CALIVIGNY]]
*[[HILLS ROAD,St.George,Grenada|HILLS ROAD]]
*[[HILLSBOROUGH STREET,St.George,Grenada|HILLSBOROUGH STREET]]
*[[HOPE VALE,St.George,Grenada|HOPE VALE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1350</ref>
*[[INDEPENDENCE AVENUE,St.George,Grenada|INDEPENDENCE AVENUE]]
*[[JEAN ANGLIAS,St.George,Grenada|JEAN ANGLIAS]]
*[[JUMBIE,St.George,Grenada|JUMBIE]]
*[[KAFE BEAU HILL,St.George,Grenada|KAFE BEAU HILL]]
*[[LA BORIE,St.George,Grenada|LA BORIE]]
*[[LA MODE,St.George,Grenada|LA MODE]]
*[[LAGOON ROAD,St.George,Grenada|LAGOON ROAD]]
*[[LANCE AUX EPINES,St.George,Grenada|LANCE AUX EPINES]]
*[[LONG GUTTER,St.George,Grenada|LONG GUTTER]]
*[[LOWER MORNE JALOUX,St.George,Grenada|LOWER MORNE JALOUX]]
*[[LOWER WOBURN,St.George,Grenada|LOWER WOBURN]]
*[[LOWTHER'S LANE,St.George,Grenada|LOWTHER'S LANE]]
*[[LUCAS STREET,St.George,Grenada|LUCAS STREET]]
*[[MALONEY STREET,St.George,Grenada|MALONEY STREET]]
*[[MANGO, NEW HAMPSHIRE,St.George,Grenada|MANGO, NEW HAMPSHIRE]]
*[[MARIAN,St.George,Grenada|MARIAN]]
*[[MARKET HILL,St.George,Grenada|MARKET HILL]]
*[[MARRAST HILL,St.George,Grenada|MARRAST HILL]]
*[[MAURICE BISHOP HIGHWAY, GRAND ANSE,St.George,Grenada|MAURICE BISHOP HIGHWAY, GRAND ANSE]]
*[[MAURICE BISHOP HWY, GRAND,St.George,Grenada|MAURICE BISHOP HWY, GRAND]]
*[[MELVILLE STREET,St.George,Grenada|MELVILLE STREET]]
*[[MOLINIERE,St.George,Grenada|MOLINIERE]]
*[[MONT TOUTE,St.George,Grenada|MONT TOUTE]]
*[[MORNE JALOUX,St.George,Grenada|MORNE JALOUX]]
*[[MORNE ROUGE,St.George,Grenada|MORNE ROUGE]]
*[[MORTLEY ROAD,St.George,Grenada|MORTLEY ROAD]]
*[[MT. AIRY,St.George,Grenada|MT. AIRY]]
*[[MT. GAY,St.George,Grenada|MT. GAY]]
*[[MT. HARTMAN,St.George,Grenada|MT. HARTMAN]]
*[[MT. MORITZ,St.George,Grenada|MT. MORITZ]]
*[[MT. PARNASSUS,St.George,Grenada|MT. PARNASSUS]]
*[[MT. RUSH,St.George,Grenada|MT. RUSH]]
*[[MT. WHELDALE,St.George,Grenada|MT. WHELDALE]]
*[[OBSERVATORY ROAD,St.George,Grenada|OBSERVATORY ROAD]]
*[[OLD FORT,St.George,Grenada|OLD FORT]]
*[[PADDOCK,St.George,Grenada|PADDOCK]]
*[[PARADE,St.George,Grenada|PARADE]]
*[[PARK LANE,St.George,Grenada|PARK LANE]]
*[[PERSEVERANCE,St.George,Grenada|PERSEVERANCE]]
*[[PETERSFIELD,St.George,Grenada|PETERSFIELD]]
*[[POINT SALINES,St.George,Grenada|POINT SALINES]]
*[[QUEEN'S PARK,St.George,Grenada|QUEEN'S PARK]]
*[[RADIX, MT. PARNASSUS,St.George,Grenada|RADIX, MT. PARNASSUS]]
*[[RAVINE, MT. GAY,St.George,Grenada|RAVINE, MT. GAY]]
*[[RICHMOND HILL,St.George,Grenada|RICHMOND HILL]]
*[[RIVER ROAD,St.George,Grenada|RIVER ROAD]]
*[[ROEBUCK,St.George,Grenada|ROEBUCK]]
*[[SANS SOUCI,St.George,Grenada|SANS SOUCI]]
*[[SCOTT STREET,St.George,Grenada|SCOTT STREET]]
*[[SHENDA,St.George,Grenada|SHENDA]]
*[[SIMMONS STREET,St.George,Grenada|SIMMONS STREET]]
*[[SNUG CORNER,St.George,Grenada|SNUG CORNER]]
*[[SPRINGS,St.George,Grenada|SPRINGS]]
*[[ST. GEORGE ESTATE,St.George,Grenada|ST. GEORGE ESTATE]]
*[[ST. JOHN STREET,St.George,Grenada|ST. JOHN STREET]]
*[[ST. JUILLE STREET,St.George,Grenada|ST. JUILLE STREET]]
*[[ST.PAUL'S,St.George,Grenada|ST.PAUL'S]]
*[[SUNSET VALLEY, POINT SALINES,St.George,Grenada|SUNSET VALLEY, POINT SALINES]]
*[[TANTEEN, TANTEEN TERRACE,St.George,Grenada|TANTEEN, TANTEEN TERRACE]]
*[[TEMPE,St.George,Grenada|TEMPE]]
*[[TETMUND,St.George,Grenada|TETMUND]]
*[[THE BOCAS,St.George,Grenada|THE BOCAS]]
*[[THE GREENS,St.George,Grenada|THE GREENS]]
*[[THE LIMES,St.George,Grenada|THE LIMES]]
*[[THE STONES, GRAND ANSE,St.George,Grenada|THE STONES, GRAND ANSE]]
*[[THE STONES, NEW HAMPSHIRE,St.George,Grenada|THE STONES, NEW HAMPSHIRE]]
*[[THE VILLA, LONG GUTTER,St.George,Grenada|THE VILLA, LONG GUTTER]]
*[[TRANQUIL LANE,St.George,Grenada|TRANQUIL LANE]]
*[[TRUE BLUE,St.George,Grenada|TRUE BLUE]]
*[[TRYNE ALLEY,St.George,Grenada|TRYNE ALLEY]]
*[[TURTLE BACK DRIVE, LANCE AUX,St.George,Grenada|TURTLE BACK DRIVE, LANCE AUX]]
*[[TYRREL STREET,St.George,Grenada|TYRREL STREET]]
*[[UPPER MORNE JALOUX,St.George,Grenada|UPPER MORNE JALOUX]]
*[[UPPER WOBURN,St.George,Grenada|UPPER WOBURN]]
*[[VENDOME,St.George,Grenada|VENDOME]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1287</ref>
*[[WELCOME,St.George,Grenada|WELCOME]]
*[[WHITE GUN,St.George,Grenada|WHITE GUN]]
*[[WHITE HALL, PARK LANE,St.George,Grenada|WHITE HALL, PARK LANE]]
*[[WILLIAMSON ROAD,St.George,Grenada|WILLIAMSON ROAD]]
*[[WILLIS,St.George,Grenada|WILLIS]]
*[[WOODLANDS,St.George,Grenada|WOODLANDS]]
*[[WOOLWICH ROAD,St.George,Grenada|WOOLWICH ROAD]]
*[[YOUNG STREET,St.George,Grenada|YOUNG STREET]]
==[[St.John,Grenada|St.John]]==
*[[BACK STREET,St.John,Grenada|BACK STREET]]
*[[BELVIDERE,St.John,Grenada|BELVIDERE]]
*[[BLACK BAY,St.John,Grenada|BLACK BAY]]
*[[BOYKES LANE, GOUYAVE,St.John,Grenada|BOYKES LANE, GOUYAVE]]
*[[BROOKLYN,St.John,Grenada|BROOKLYN]]
*[[BROTHERS ESTATE,St.John,Grenada|BROTHERS ESTATE]]
*[[CENTRAL DEPRADINE STREET,St.John,Grenada|CENTRAL DEPRADINE STREET]]
*[[CLOZIER,St.John,Grenada|CLOZIER]]
*[[CONCORD,St.John,Grenada|CONCORD]]
*[[CORNETS WALK, GOUYAVE,St.John,Grenada|CORNETS WALK, GOUYAVE]]
*[[COTTON BAILY,St.John,Grenada|COTTON BAILY]]
*[[D LANCE, UPPER DEPRADINE,St.John,Grenada|D LANCE, UPPER DEPRADINE]]
*[[DOCTOR BELLE,St.John,Grenada|DOCTOR BELLE]]
*[[DOUGALDSTON,St.John,Grenada|DOUGALDSTON]]
*[[EDWARD STREET, GOUYAVE,St.John,Grenada|EDWARD STREET, GOUYAVE]]
*[[FERGUSON'S LANE,St.John,Grenada|FERGUSON'S LANE]]
*[[FLORIDA,St.John,Grenada|FLORIDA]]
*[[GOUYAVE ESTATE,St.John,Grenada|GOUYAVE ESTATE]]
*[[GRAND ROY,St.John,Grenada|GRAND ROY]]
*[[HILLSVIEW, GOUYAVE,St.John,Grenada|HILLSVIEW, GOUYAVE]]
*[[LANGTON ROAD, GOUYAVE,St.John,Grenada|LANGTON ROAD, GOUYAVE]]
*[[LOWER DEPRADINE STREET,St.John,Grenada|LOWER DEPRADINE STREET]]
*[[MARIGOT,St.John,Grenada|MARIGOT]]
*[[MITCHELL'S LANE,St.John,Grenada|MITCHELL'S LANE]]
*[[MONGO ROAD, GOUYAVE ESTATE,St.John,Grenada|MONGO ROAD, GOUYAVE ESTATE]]
*[[MT. GRANBY,St.John,Grenada|MT. GRANBY]]
*[[MT. PLASIR,,Grenada|MT. PLASIR]]
*[[MT. NESBIT,St.John,Grenada|MT. NESBIT]]
*[[NEW STREET, EDWARD STREET,St.John,Grenada|NEW STREET, EDWARD STREET]]
*[[NEW STREET, GOUYAVE,St.John,Grenada|NEW STREET, GOUYAVE]]
*[[PALMISTE,St.John,Grenada|PALMISTE]]
*[[QUEEN STREET, ST. JOHN'S,St.John,Grenada|QUEEN STREET, ST. JOHN'S]]
*[[RENNIE,St.John,Grenada|RENNIE]]
*[[RIVER LANE, GOUYAVE ESTATE,St.John,Grenada|RIVER LANE, GOUYAVE ESTATE]]
*[[RIVER LANE, GOUYAVE,St.John,Grenada|RIVER LANE, GOUYAVE]]
*[[ROSEMOUNT,St.John,Grenada|ROSEMOUNT]]
*[[SCHOOL LANE, GOUYAVE,St.John,Grenada|SCHOOL LANE, GOUYAVE]]
*[[ST BENOIT STREET, GOUYAVE,St.John,Grenada|ST BENOIT STREET, GOUYAVE]]
*[[ST DOMINIC STREET, GOUYAVE,St.John,Grenada|ST DOMINIC STREET, GOUYAVE]]
*[[ST DOMINIC, GOUYAVE,St.John,Grenada|ST DOMINIC, GOUYAVE]]
*[[ST FRANCIS, GOUYAVE,St.John,Grenada|ST FRANCIS, GOUYAVE]]
*[[ST PETERS STREET, GOUYAVE,St.John,Grenada|ST PETERS STREET, GOUYAVE]]
*[[ST PETERS, GOUYAVE,St.John,Grenada|ST PETERS, GOUYAVE]]
*[[ST. FRANCIS STREET,St.John,Grenada|ST. FRANCIS STREET]]
*[[ST. PETER STREET,St.John,Grenada|ST. PETER STREET]]
*[[LOWER DEPRADINE, GOUYAVE,,Grenada|LOWER DEPRADINE, GOUYAVE]]
*[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]]
*[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]]
*[[UPPER DEPRADINE STREET,St.John,Grenada|UPPER DEPRADINE STREET]]
*[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]]
*[[VICTORIA ROAD, GOUYAVE,St.John,Grenada|VICTORIA ROAD, GOUYAVE]]
*[[VICTORIA STREET,St.John,Grenada|VICTORIA STREET]]
*[[WATERLOO,St.John,Grenada|WATERLOO]]
*[[WOODFORD,St.John,Grenada|WOODFORD]]
==[[St.David,Grenada|St.David]]==
*[[APRES TOUTE,St.David,Grenada|APRES TOUTE]]
*[[BAILLES BACOLET,St.David,Grenada|BAILLES BACOLET]]
*[[BEATON,St.David,Grenada|BEATON]]
*[[BELLE ISLE,St.David,Grenada|BELLE ISLE]]
*[[BELLE VUE,St.David,Grenada|BELLE VUE]]
*[[BOCAGE,St.David,Grenada|BOCAGE]]
*[[CHAMPFLEURS,St.David,Grenada|CHAMPFLEURS]]
*[[COALS GAPS,St.David,Grenada|COALS GAPS]]
*[[CONTENT,St.David,Grenada|CONTENT]]
*[[CORINTH,St.David,Grenada|CORINTH]]
*[[DUDMAR,St.David,Grenada|DUDMAR]]
*[[EPPIN FOREST,St.David,Grenada|EPPIN FOREST]]
*[[HARMONY HALL,St.David,Grenada|HARMONY HALL]]
*[[LA CALOHME,St.David,Grenada|LA CALOHME]]
*[[LA FEMME,St.David,Grenada|LA FEMME]]
*[[LA FLORETTA,St.David,Grenada|LA FLORETTA]]
*[[LA PASTORA,St.David,Grenada|LA PASTORA]]
*[[LA SAGESSE,St.David,Grenada|LA SAGESSE]]
*[[LA TANTE,St.David,Grenada|LA TANTE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1363</ref>
*[[MARLMOUNT,St.David,Grenada|MARLMOUNT]]
*[[MARDIGRAS,St.David,Grenada|MARDIGRAS]]
*[[MARLMOUNT, GLEBE LAND,St.David,Grenada|MARLMOUNT, GLEBE LAND]]
*[[MAULTY,St.David,Grenada|MAULTY]]
*[[MAYANN, CONSTANTINE,St.David,Grenada|MAYANN, CONSTANTINE]]
*[[MINORCA,St.David,Grenada|MINORCA]]
*[[MORNE DELICE,St.David,Grenada|MORNE DELICE]]
*[[MON REPOS,St.David,Grenada|MON REPOS]]
*[[MT. AGNES,St.David,Grenada|MT. AGNES]]
*[[MT. DISIRE,St.David,Grenada|MT. DISIRE]]
*[[MT. ROSE,St.David,Grenada|MT. ROSE]]
*[[MYANN, CONSTANTINE,St.David,Grenada|MYANN, CONSTANTINE]]
*[[NEW WESTERHALL,St.David,Grenada|NEW WESTERHALL]]
*[[OLD WESTERHALL,St.David,Grenada|OLD WESTERHALL]]
*[[PERDMONTEMPS,St.David,Grenada|PERDMONTEMPS]]
*[[PETITE BACAYE, NEW,St.David,Grenada|PETITE BACAYE, NEW]]
*[[PETITE ESPERANCE,St.David,Grenada|PETITE ESPERANCE]]
*[[PETITE ETANG,St.David,Grenada|PETITE ETANG]]
*[[POMME ROSE,St.David,Grenada|POMME ROSE]]
*[[RED GATE,St.David,Grenada|RED GATE]]
*[[REDMUD,St.David,Grenada|REDMUD]]
*[[REQUIN,St.David,Grenada|REQUIN]]
*[[SLINGER STREET,St.David,Grenada|SLINGER STREET]]
*[[SYRACUSE,St.David,Grenada|SYRACUSE]]
*[[THEBAIDE,St.David,Grenada|THEBAIDE]]
*[[TABOR,St.David,Grenada|TABOR]]
*[[UPPER LAURA,St.David,Grenada|UPPER LAURA]]
*[[VINCENNES,St.David,Grenada|VINCENNES]]
*[[WESTERHALL POINT,St.David,Grenada|WESTERHALL POINT]]
*[[WINDSOR,St.David,Grenada|WINDSOR]]
*[[WINDSOR FOREST,St.David,Grenada|WINDSOR FOREST]]
==[[Carriacou and Petite Martinique,Grenada|Carriacou and Petite Martinique]]==
*[[BAYALEAU,Carriacou,Grenada|BAYALEAU]]
*[[BEAUSEJOUR,Carriacou,Grenada|BEAUSEJOUR]]
*[[BELAIR,Carriacou,Grenada|BELAIR]]
*[[BELLE VUE,Carriacou,Grenada|BELLE VUE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1237</ref>
*[[BELMONT,Carriacou,Grenada|BELMONT]]
*[[BOGLES,Carriacou,Grenada|BOGLES]]
*[[BRUNSWICK,Carriacou,Grenada|BRUNSWICK]]
*[[CHURCH STREET, HILLSBOROUGH,Carriacou,Grenada|CHURCH STREET, HILLSBOROUGH]]
*[[CRAIGSTON,Carriacou,Grenada|CRAIGSTON]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1385]</ref>
*[[CHERRY HILL,Carriacou,Grenada|CHERRY HILL]]
*[[DOVER,Carriacou,Grenada|DOVER]]
*[[DUMFRIES,Carriacou,Grenada|DUMFRIES]]
*[[GRAND BAY,Carriacou,Grenada|GRAND BAY]]
*[[HARVEY VALE,Carriacou,Grenada|HARVEY VALE]]
*[[HERMITAGE,Carriacou,Grenada|HERMITAGE]]
*[[HILLSBOROUGH,Carriacou,Grenada|HILLSBOROUGH]]
*[[L'ESTERRE,Carriacou,Grenada|L'ESTERRE]]
*[[LAURISTON,Carriacou,Grenada|LAURISTON]]
*[[LIMLAIR,Carriacou,Grenada|LIMLAIR]]
*[[MELDRUM,Carriacou,Grenada|MELDRUM]]
*[[MT. DESIRE,Carriacou,Grenada|MT. DESIRE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1237</ref>
*[[MT. PLEASANT,Carriacou,Grenada|MT. PLEASANT]]
*[[MT. ST ERVANS, L'ESTERRIE,Carriacou,Grenada|MT ST ERVANS, L'ESTERRIE]]
*[[MT. ROYAL,Carriacou,Grenada|MT. ROYAL]]
*[[PROSPECT HALL,Carriacou,Grenada|PROSPECT HALL]]
*[[SIX ROADS,Carriacou,Grenada|SIX ROADS]]
*[[TOP HILL,Carriacou,Grenada|TOP HILL]]
*[[WINDWARD,Carriacou,Grenada|WINDWARD]]
*[[PETITE MARTINIQUE,PETIT MARTINIQUE,Grenada|PETITE MARTINIQUE]]
==[[St.Andrew,Grenada|St.Andrew]]==
*[[MT. FANN,St. Andrew,Grenada|MT. FANN]]
*[[ADELPHI,St.Andrew,Grenada|ADELPHI]]
*[[AHOMA,St.Andrew,Grenada|AHOMA]]
*[[BALTHAZAR,St.Andrew,Grenada|BALTHAZAR]]
*[[BAYROAD,St.Andrew,Grenada|BAYROAD]]
*[[BLAIZE,St.Andrew,Grenada|BLAIZE]]
*[[BAMBOO,St.Andrew,Grenada|BAMBOO]]
*[[BATTLE HILL,St.Andrew,Grenada|BATTLE HILL]]
*[[BEAUREGARD,St.Andrew,Grenada|BEAUREGARD]]
*[[BELLE VUE,St.Andrew,Grenada|BELLE VUE]]
*[[BELVEDERE,St.Andrew,Grenada|BELVEDERE]]
*[[BEN JONES STREET,St.Andrew,Grenada|BEN JONES STREET]]
*[[BIRCHGROVE,St.Andrew,Grenada|BIRCHGROVE]]
*[[BYELANDS,St.Andrew,Grenada|BYELANDS]]
*[[CAFE,St.Andrew,Grenada|CAFE]]
*[[CANAL ROAD,St.Andrew,Grenada|CANAL ROAD]]
*[[CARRIERE,St.Andrew,Grenada|CARRIERE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1305</ref>
*[[CARRUTH,St.Andrew,Grenada|CARRUTH]]
*[[CASTIGNE,St.Andrew,Grenada|CASTIGNE]]
*[[CHAPEL ROAD,St.Andrew,Grenada|CHAPEL ROAD]]
*[[COCOA ROAD,St.Andrew,Grenada|COCOA ROAD]]
*[[CODRONA,St.Andrew,Grenada|CODRONA]]
*[[UPPER CONFERENCE,St.Andrew,Grenada|UPPER CONFERENCE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1306</ref>
*[[LOWER CONFERENCE,St.Andrew,Grenada|LOWER CONFERENCE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1307</ref>
*[[COOKHILL ROAD,St.Andrew,Grenada|COOKHILL ROAD]]
*[[CROCHU,St.Andrew,Grenada|CROCHU]]
*[[DE BLANDEAU,St.Andrew,Grenada|DE BLANDEAU]]
*[[DUNFERMLINE,St.Andrew,Grenada|DUNFERMLINE]]
*[[DURRANT ROAD,St.Andrew,Grenada|DURRANT ROAD]]
*[[FORD HILL ROAD,St.Andrew,Grenada|FORD HILL ROAD]]
*[[FELIX PARK,St.Andrew,Grenada|FELIX PARK]]
*[[GRANLETTE,St.Andrew,Grenada|GRANLETTE]]
*[[GEORGE V. STREET,St.Andrew,Grenada|GEORGE V. STREET]]
*[[GLADSTONE ROAD,St.Andrew,Grenada|GLADSTONE ROAD]]
*[[GOUYAVE,St.Andrew,Grenada|GOUYAVE]]
*[[GRAND BACOLET,St.Andrew,Grenada|GRAND BACOLET]]
*[[GRAND BRAS,St.Andrew,Grenada|GRAND BRAS]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1303</ref>
*[[GRIFFIN LANE,St.Andrew,Grenada|GRIFFIN LANE]]
*[[GUPO,St.Andrew,Grenada|GUPO]]
*[[HARFORD VILLAGE,St.Andrew,Grenada|HARFORD VILLAGE]]
*[[HERMON,St.Andrew,Grenada|HERMON]]
*[[HILLS ROAD, LOWER,St.Andrew,Grenada|HILLS ROAD]]
*[[HOPE,St.Andrew,Grenada|HOPE]]
*[[HOPE CITY,St.Andrew,Grenada|HOPE CITY]]
*[[LA DIGUE,St.Andrew,Grenada|LA DIGUE]]
*[[LA FILLETTE,St.Andrew,Grenada|LA FILLETTE]]
*[[LA POTERIE,St.Andrew,Grenada|LA POTERIE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/13121</ref>
*[[L'ESTERRIE,St.Andrew,Grenada|L'ESTERRIE]]
*[[LOWER CAPITOL,St.Andrew,Grenada|LOWER CAPITOL]]
*[[LOWER HARFORD VILLAGE,St.Andrew,Grenada|LOWER HARFORD VILLAGE]]
*[[MAHOUT,St.Andrew,Grenada|MAHOUT]]
*[[MAMMA CANNES,St.Andrew,Grenada|MAMMA CANNES]]
*[[MARQUIS,St.Andrew,Grenada|MARQUIS]]
*[[MC NELLIE ALLEY, SAUTEURS,St.Andrew,Grenada|MC NELLIE ALLEY, SAUTEURS]]
*[[MC NEILLY, SAUTEURS,St.Andrew,Grenada|MC NEILLY, SAUTEURS]]
*[[MEADOW,St.Andrew,Grenada|MEADOW]]
*[[MELDRUM,St.Andrew,Grenada|MELDRUM]]
*[[MIRABEAU,St.Andrew,Grenada|MIRABEAU]]
*[[MORNE LOUNGE,St.Andrew,Grenada|MORNE LOUNGE]]
*[[MOYAH,St.Andrew,Grenada|MOYAH]]
*[[MT. ST ERVANS, LA DIGUE,St.Andrew,Grenada|MT ST ERVANS, LA DIGUE]]
*[[MT. CARMEL,St.Andrew,Grenada|MT. CARMEL]]
*[[MT. HORNE,St.Andrew,Grenada|MT. HORNE]]
*[[MT. PLEASANT,St.Andrew,Grenada|MT. PLEASANT]]
*[[MT. SEALEY,St.Andrew,Grenada|MT. SEALEY]]
*[[MUNICH,St.Andrew,Grenada|MUNICH]]
*[[NEW HAMPSHIRE,St.Andrew,Grenada|NEW HAMPSHIRE]]
*[[NOELSVILLE,St.Andrew,Grenada|NOELSVILLE]]
*[[PARACLETE,St.Andrew,Grenada|PARACLETE]]
*[[PARADISE,St.Andrew,Grenada|PARADISE]]
*[[PEARLS,St.Andrew,Grenada|PEARLS]]
*[[PLATEAU,St.Andrew,Grenada|PLATEAU]]
*[[PLEASANCE,St.Andrew,Grenada|PLEASANCE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/99</ref>
*[[POST ROYAL,St.Andrew,Grenada|POST ROYAL]]
*[[PROVIDENCE,St.Andrew,Grenada|PROVIDENCE]]
*[[RETREAT,St.Andrew,Grenada|RETREAT]]
*[[RICHMOND,St.Andrew,Grenada|RICHMOND]]
*[[RIVULET LANE,St.Andrew,Grenada|RIVULET LANE]]
*[[SABB,St.Andrew,Grenada|SABB]]
*[[SALISBURY ROAD,St.Andrew,Grenada|SALISBURY ROAD]]
*[[SAMUEL AVENUE, CALIVIGNY,St.Andrew,Grenada|SAMUEL AVENUE, CALIVIGNY]]
*[[SEATON BROWNE STREET,St.Andrew,Grenada|SEATON BROWNE STREET]]
*[[SEATON JAMES STREET,St.Andrew,Grenada|SEATON JAMES STREET]]
*[[SENDALL STREET,St.Andrew,Grenada|SENDALL STREET]]
*[[SIMON,St.Andrew,Grenada|SIMON]]
*[[SNELL HALL,St.Andrew,Grenada|SNELL HALL]]
*[[SOUBISE,St.Andrew,Grenada|SOUBISE]]
*[[SPRING GARDEN,St.Andrew,Grenada|SPRING GARDEN]]
*[[ST. CLOUDS,St.Andrew,Grenada|ST. CLOUDS]]
*[[ST. JAMES,St.Andrew,Grenada|ST. JAMES]]
*[[ST. JOHNS,St.Andrew,Grenada|ST. JOHNS]]
*[[TOUS CONGO,St.Andrew,Grenada|TOUS CONGO]]
*[[TELESCOPE,St.Andrew,Grenada|TELESCOPE]]
*[[TIVOLI,St.Andrew,Grenada|TIVOLI]]
*[[TUILLIERIES,St.Andrew,Grenada|TUILLIERIES]]
*[[UNION,St.Andrew,Grenada|UNION]]
*[[UPPER CAPITOL,St.Andrew,Grenada|UPPER CAPITOL]]
*[[THE VILLA,St.Andrew,Grenada|THE VILLA]]
*[[VILLAGE ROAD,St.Andrew,Grenada|VILLAGE ROAD]]
*[[VICTORIA STREET,St.Andrew,Grenada|VICTORIA STREET]]
*[[WALKER,St.Andrew,Grenada|WALKER]]
*[[WELLS ROAD,St.Andrew,Grenada|WELLS ROAD]]
==[[St.Mark,Grenada|St.Mark]]==
*[[BOCAGE,St.Mark,Grenada|BOCAGE]]
*[[BOCAGE, BONAIR,St.Mark,Grenada|BOCAGE, BONAIR]]
*[[BONAIR,St.Mark,Grenada|BONAIR]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1366</ref>
*[[BONIAR ROAD, BONAIR,St.Mark,Grenada|BONIAR ROAD, BONAIR]]
*[[CHARLOTTE VALE,St.Mark,Grenada|CHARLOTTE VALE]]
*[[COAST GUARD,St.Mark,Grenada|COAST GUARD]]
*[[CRUICKSHANK ROAD,St.Mark,Grenada|CRUICKSHANK ROAD]]
*[[CRUICKSHANK ROAD, VICTORIA,St.Mark,Grenada|CRUICKSHANK ROAD, VICTORIA]]
*[[DARVEY,St.Mark,Grenada|DARVEY]]
*[[DE VILLA,St.Mark,Grenada|DE VILLA]]
*[[DIAMOND ESTATE,St.Mark,Grenada|DIAMOND ESTATE]]
*[[DIAMOND STREET, VICTORIA,St.Mark,Grenada|DIAMOND STREET, VICTORIA]]
*[[DIEGO PIECE,St.Mark,Grenada|DIEGO PIECE]]
*[[DUQUESNE,St.Mark,Grenada|DUQUESNE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1367</ref>
*[[FAIR FIELD ROAD, VICTORIA,St.Mark,Grenada|FAIR FIELD ROAD, VICTORIA]]
*[[GALL STREET, VICTORIA,St.Mark,Grenada|GALL STREET, VICTORIA]]
*[[GROSS POINT, GROSS POINT VILLA,St.Mark,Grenada|GROSS POINT, GROSS POINT VILLA]]
*[[INDUSTRY,St.Mark,Grenada|INDUSTRY]]
*[[LA RESOURCE,St.Mark,Grenada|LA RESOURCE]]
*[[MARAN,St.Mark,Grenada|MARAN]]
*[[MT. EDGECOMBE,St.Mark,Grenada|MT. EDGECOMBE]]
*[[MUNRO STREET, VICTORIA,St.Mark,Grenada|MUNRO STREET, VICTORIA]]
*[[NON-PARIEL,St.Mark,Grenada|NON-PARIEL]]
*[[PETIT BOCAGE,St.Mark,Grenada|PETIT BOCAGE]]
*[[QUEEN STREET, VICTORIA,St.Mark,Grenada|QUEEN STREET, VICTORIA]]
*[[RESOURCE,St.Mark,Grenada|RESOURCE]]
*[[RESOURCE, RESOURCE,St.Mark,Grenada|RESOURCE, RESOURCE]]
*[[RIVER SALLEE,St.Mark,Grenada|RIVER SALLEE]]
*[[SAMARITAN,St.Mark,Grenada|SAMARITAN]]
*[[SAMARITAN, DIEGO PIECE,St.Mark,Grenada|SAMARITAN, DIEGO PIECE]]
*[[ST DAVID STREET, VICTORIA,St.Mark,Grenada|ST DAVID STREET, VICTORIA]]
*[[ST JOHN STREET, VICTORIA,St.Mark,Grenada|ST JOHN STREET, VICTORIA]]
*[[STEWAD COTTAGE,St.Mark,Grenada|STEWAD COTTAGE]]
*[[VICTORIA,St.Mark,Grenada|VICTORIA]]
*[[WALTHAM,St.Mark,Grenada|WALTHAM]]
==[[St.Patrick,Grenada|St.Patrick]]==
*[[BATHWAY,St.Patrick,Grenada|BATHWAY]]
*[[BAY ROAD, SAUTEURS,St.Patrick,Grenada|BAY ROAD, SAUTEURS]]
*[[BELMONT,St.Patrick,Grenada|BELMONT]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1317</ref>
*[[CEDARS,St.Patrick,Grenada|CEDARS]]
*[[CHANTIMELLE,St.Patrick,Grenada|CHANTIMELLE]]
*[[CROSS STREET, SAUTEURS,St.Patrick,Grenada|CROSS STREET, SAUTEURS]]
*[[GLEBE LAND, SAUTEURS,St.Patrick,Grenada|GLEBE LAND, SAUTEURS]]
*[[GLEBE STREET, SAUTEURS,St.Patrick,Grenada|GLEBE STREET, SAUTEURS]]
*[[CORNWALL STREET, SAUTEURS,,Grenada|CORNWALL STREET, SAUTEURS]]
*[[HERMITAGE,St.Patrick,Grenada|HERMITAGE]]
*[[HIGH GATE, MORNE FENDUE,St.Patrick,Grenada|HIGH GATE, MORNE FENDUE]]
*[[HIGH STREET, SAUTEURS,St.Patrick,Grenada|HIGH STREET, SAUTEURS]]
*[[HILL STREET, SAUTEURS,St.Patrick,Grenada|HILL STREET, SAUTEURS]]
*[[LA FORTUNE,St.Patrick,Grenada|LA FORTUNE]]
*[[LA TASTE,St.Patrick,Grenada|LA TASTE]]
*[[LEVERA,St.Patrick,Grenada|LEVERA]]
*[[MADEYS,St.Patrick,Grenada|MADEYS]]
*[[MAHOUT, ROSE HILL,St.Patrick,Grenada|MAHOUT, ROSE HILL]]
*[[MAIN STREET, SAUTEURS,St.Patrick,Grenada|MAIN STREET, SAUTEURS]]
*[[MARLI,St.Patrick,Grenada|MARLI]]
*[[MC NEILLY ALLEY, MARLI,St.Patrick,Grenada|MC NEILLY ALLEY, MARLI]]
*[[MC NELLIE ALLEY, SAUTEURS,St.Patrick,Grenada|MC NELLIE ALLEY, SAUTEURS]]
*[[MORNE FENDUE,St.Patrick,Grenada|MORNE FENDUE]]
*[[MT. CRAVEN,St.Patrick,Grenada|MT. CRAVEN]]
*[[MT. RICH,St.Patrick,Grenada|MT. RICH]]
*[[MT. ROSE,St.Patrick,Grenada|MT. ROSE]]
*[[MT. REUIL,,Grenada|MT. REUIL]]
*[[PEGGYS WHIM, HERMITAGE,St.Patrick,Grenada|PEGGYS WHIM, HERMITAGE]]
*[[PLAINS,St.Patrick,Grenada|PLAINS]]
*[[POINTZFIELD,St.Patrick,Grenada|POINTZFIELD]]
*[[PROSPECT,St.Patrick,Grenada|PROSPECT]]
*[[RED HEAD STREET, LA FORTUNE,St.Patrick,Grenada|RED HEAD STREET, LA FORTUNE]]
*[[RED HEAD STREET, SAUTEURS,St.Patrick,Grenada|RED HEAD STREET, SAUTEURS]]
*[[RED MUD,St.Patrick,Grenada|RED MUD]]
*[[RIVER SALLEE,St.Patrick,Grenada|RIVER SALLEE]]
*[[ROSE HILL,St.Patrick,Grenada|ROSE HILL]]
*[[SALISBURY RD, SAUTEURS,St.Patrick,Grenada|SALISBURY RD, SAUTEURS]]
*[[SALISBURY STREET, SAUTEURS,St.Patrick,Grenada|SALISBURY STREET, SAUTEURS]]
*[[SAUTEURS,St.Patrick,Grenada|SAUTEURS]]
*[[THE VILLA, SAUTEURS,St.Patrick,Grenada|THE VILLA, SAUTEURS]]
== Uncategorized==
*[[ADAM'S ALLEY,,Grenada|ADAM'S ALLEY]]
*[[AFRICA,,Grenada|AFRICA]]
*[[APSLEY HILL,,Grenada|APSLEY HILL]]
*[[BLUGGO,,Grenada|BLUGGO]]
*[[BYWAY,,Grenada|BYWAY]]
*[[CELESTE,,Grenada|CELESTE]]
*[[CENTRAL DEPRADINE, GOUYAVE,,Grenada|CENTRAL DEPRADINE, GOUYAVE]]
*[[CHADDEAU,,Grenada|CHADDEAU]]
*[[CHANCERY STREET, MUNRO,,Grenada|CHANCERY STREET, MUNRO]]
*[[CHAPEL'S LANE,,Grenada|CHAPEL'S LANE]]
*[[CHURCH HILL ROAD,,Grenada|CHURCH HILL ROAD]]
*[[COOPER'S HILL,,Grenada|COOPER'S HILL]]
*[[DE SILLES,,Grenada|DE SILLES]]
*[[DEHAR, GLEBE LAND,,Grenada|DEHAR, GLEBE LAND]]
*[[DOTHAN ESTATE,,Grenada|DOTHAN ESTATE]]
*[[DURRANT ROAD,,Grenada|DURRANT ROAD]]
*[[FIELD STREET,,Grenada|FIELD STREET]]
*[[FOUNTAIN,,Grenada|FOUNTAIN]]
*[[GROSS POINT VILLA,,Grenada|GROSS POINT VILLA]]
*[[HENRY STREET,,Grenada|HENRY STREET]]
*[[JONES ROAD,,Grenada|JONES ROAD]]
*[[LOWER CONFERENCE,,Grenada|LOWER CONFERENCE]]
*[[LOWER DEPRADINE, GOUYAVE,,Grenada|LOWER DEPRADINE, GOUYAVE]]
*[[LOWER LAURA,,Grenada|LOWER LAURA]]
*[[LYDER,,Grenada|LYDER]]
*[[MAHOUT, SAUTEURS,,Grenada|MAHOUT, SAUTEURS]]
*[[MAIN STREET, SAUTEURS,,Grenada|MAIN STREET, SAUTEURS]]
*[[MALIGNON,,Grenada|MALIGNON]]
*[[MARINE VILLA,,Grenada|MARINE VILLA]]
*[[MAUCHETTE,,Grenada|MAUCHETTE]]
*[[MC LAINE ALLEY, SAUTEURS,,Grenada|MC LAINE ALLEY, SAUTEURS]]
*[[MELROSE,,Grenada|MELROSE]]
*[[MT. ALEXANDER,,Grenada|MT. ALEXANDER]]
*[[MT. ANON,,Grenada|MT. ANON]]
*[[MT. CUMMA,,Grenada|MT. CUMMA]]
*[[MT. FELIX,,Grenada|MT. FELIX]]
*[[MT. RODNEY,,Grenada|MT. RODNEY]]
*[[MT. WILLIAMS,,Grenada|MT. WILLIAMS]]
*[[MUNRO STREET,,Grenada|MUNRO STREET]]
*[[MUNROE STREET, VICTORIA,,Grenada|MUNROE STREET, VICTORIA]]
*[[NETTLE POINT,,Grenada|NETTLE POINT]]
*[[NEW GARDENS,,Grenada|NEW GARDENS]]
*[[OTTLEY'S LANE,,Grenada|OTTLEY'S LANE]]
*[[PARK ESTATE,,Grenada|PARK ESTATE]]
*[[PENNY RETREAT,,Grenada|PENNY RETREAT]]
*[[SAMUELS AVENUE,,Grenada|SAMUELS AVENUE]]
*[[SCHOOL LANE,,Grenada|SCHOOL LANE]]
*[[ST. BENOIT'S STREET,,Grenada|ST. BENOIT'S STREET]]
*[[ST. CYR,,Grenada|ST. CYR]]
*[[ST. DAVID STREET,,Grenada|ST. DAVID STREET]]
*[[ST. DOMINIC'S ST.,,Grenada|ST. DOMINIC'S ST.]]
*[[TAYBAKAY,,Grenada|TAYBAKAY]]
*[[TAYLOR,,Grenada|TAYLOR]]
*[[THE SUMMIT,,Grenada|THE SUMMIT]]
*[[THE VILLA, THE ROCK,,Grenada|THE VILLA, THE ROCK]]
*[[VINEYARD,,Grenada|VINEYARD]]
e27748f2e3377aa78a3403ccd1796e15037611cd
191
190
2024-11-16T01:04:15Z
Wikiricky
1
wikitext
text/x-wiki
This is a list of populated villages, towns, settlements, and streets in Grenada. Many of the village names in Grenada are based upon the names of plantations. Grenada has 7 Parishes
==[[St.George,Grenada|St.George]]==
*[[ANNANDALE,St.George,Grenada|ANNANDALE]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/100 Annandale Estate - Legacies of British Slavery - UCL]</ref>
*[[ARCHIBALD AVENUE,St.George,Grenada|ARCHIBALD AVENUE]]
*[[BACK STREET, TEMPE,St.George,Grenada|BACK STREET, TEMPE]]
*[[BAIN'S ALLEY,St.George,Grenada|BAIN'S ALLEY]]
*[[BEAULIEU,St.George,Grenada|BEAULIEU]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1320 <nowiki>Beaulieu [ Grenada | St George ] - UCL</nowiki>]</ref>
*[[BELMONT,St.George,Grenada|BELMONT]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1290</ref>
*[[BLACK FOREST, St.George,Grenada|BLACK FOREST]]
*[[VENDOME,St.George,Grenada|VENDOME]]
*[[BLACKBURN ALLEY,St.George,Grenada|BLACKBURN ALLEY]]
*[[BOCA,St.George,Grenada|BOCA]]
*[[BON ACCORD ESTATE,St.George,Grenada|BON ACCORD ESTATE]]
*[[BOTANICAL GARDENS,St.George,Grenada|BOTANICAL GARDENS]]
*[[BRIGG'S ALLEY,St.George,Grenada|BRIGG'S ALLEY]]
*[[BRIZAN,St.George,Grenada|BRIZAN]]
*[[CAFE,St.George,Grenada|CAFE]]
*[[CALABASH ALLEY,St.George,Grenada|CALABASH ALLEY]]
*[[CALIVIGNY,St.George,Grenada|CALIVIGNY]]
*[[CALLISTE,St.George,Grenada|CALLISTE]]
*[[CARENAGE,St.George,Grenada|CARENAGE]]
*[[CARRIERE,St.George,Grenada|CARRIERE]]
*[[CEMETERY HILL,St.George,Grenada|CEMETERY HILL]]
*[[CHANTILLY, TEMPE,St.George,Grenada|CHANTILLY, TEMPE]]
*[[CHEMIN RIVER,St.George,Grenada|CHEMIN RIVER]]
*[[CHERRY HILL,St.George,Grenada|CHERRY HILL]]
*[[CHURCH STREET,St.George,Grenada|CHURCH STREET]]
*[[CIRCULAR DRIVE, FREQUENTE,St.George,Grenada|CIRCULAR DRIVE, FREQUENTE]]
*[[CLARKES COURT BAY,St.George,Grenada|CLARKES COURT BAY,]]
*[[COCOA ROAD, MARIAN,St.George,Grenada|COCOA ROAD, MARIAN]]
*[[CONFER,St.George,Grenada|CONFER]]
*[[CONSTANTINE,St.George,Grenada|CONSTANTINE]]
*[[CORBEAU TOWN,St.George,Grenada|CORBEAU TOWN]]
*[[COX ALLEY,St.George,Grenada|COX ALLEY]]
*[[CREIGHTON,St.George,Grenada|CREIGHTON]]
*[[CROSS STREET,St.George,Grenada|CROSS STREET]]
*[[D'ARBEAU,St.George,Grenada|D'ARBEAU]]
*[[DE FAUX,St.George,Grenada|DE FAUX]]
*[[DEPONTHIEU STREET,St.George,Grenada|DEPONTHIEU STREET]]
*[[DE VILLA, BLACKBURN ALLEY,St.George,Grenada|DE VILLA, BLACKBURN ALLEY]]
*[[DIXIE, SPRINGS,St.George,Grenada|DIXIE, SPRINGS]]
*[[DUSTY HIGHWAY, GRAND ANSE,St.George,Grenada|DUSTY HIGHWAY, GRAND ANSE]]
*[[EDGEMOND POINT,St.George,Grenada|EDGEMOND POINT]]
*[[FALL EDGE, GRAND ANSE,St.George,Grenada|FALL EDGE, GRAND ANSE]]
*[[FENCE,,Grenada|FENCE]]
*[[FENTON VILLAGE,St.George,Grenada|FENTON VILLAGE]]
*[[FONTENOY,St.George,Grenada|FONTENOY]]
*[[FORT JUEDY,St.George,Grenada|FORT JUEDY]]
*[[FREQUENTE,St.George,Grenada|FREQUENTE]]
*[[GOLF COURSE,St.George,Grenada|GOLF COURSE]]
*[[GOOD HOPE,St.George,Grenada|GOOD HOPE]]
*[[GORE STREET,St.George,Grenada|GORE STREET]]
*[[GRAND ANSE,St.George,Grenada|GRAND ANSE]]
*[[GRAND ANSE ESTATE, LANCE AUX,St.George,Grenada|GRAND ANSE ESTATE, LANCE AUX]]
*[[GRAND ANSE HOUSING SCHEME,St.George,Grenada|GRAND ANSE HOUSING SCHEME]]
*[[GRAND ANSE VALLEY,St.George,Grenada|GRAND ANSE VALLEY]]
*[[GRAND ETANG ROAD,St.George,Grenada|GRAND ETANG ROAD]]
*[[GRAND MAL,St.George,Grenada|GRAND MAL]]
*[[GRANTON,St.George,Grenada|GRANTON]]
*[[GRAVEL STREET, VENDOME,,Grenada|GRAVEL STREET, VENDOME]]
*[[GREEN STREET,St.George,Grenada|GREEN STREET]]
*[[GRENVILLE STREET,St.George,Grenada|GRENVILLE STREET]]
*[[GRENVILLE VALE,St.George,Grenada|GRENVILLE VALE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1394</ref>
*[[GREY STONE, BELMONT,St.George,Grenada|GREY STONE, BELMONT]]
*[[H.A BLAIZE STREET,St.George,Grenada|H.A BLAIZE STREET]]
*[[HADDON SMITH STREET,St.George,Grenada|HADDON SMITH STREET]]
*[[HALIFAX STREET,St.George,Grenada|HALIFAX STREET]]
*[[HAPPY HILL,St.George,Grenada|HAPPY HILL]]
*[[HILL TOP, CALIVIGNY,St.George,Grenada|HILL TOP, CALIVIGNY]]
*[[HILLS ROAD,St.George,Grenada|HILLS ROAD]]
*[[HILLSBOROUGH STREET,St.George,Grenada|HILLSBOROUGH STREET]]
*[[HOPE VALE,St.George,Grenada|HOPE VALE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1350</ref>
*[[INDEPENDENCE AVENUE,St.George,Grenada|INDEPENDENCE AVENUE]]
*[[JEAN ANGLIAS,St.George,Grenada|JEAN ANGLIAS]]
*[[JUMBIE,St.George,Grenada|JUMBIE]]
*[[KAFE BEAU HILL,St.George,Grenada|KAFE BEAU HILL]]
*[[LA BORIE,St.George,Grenada|LA BORIE]]
*[[LA MODE,St.George,Grenada|LA MODE]]
*[[LAGOON ROAD,St.George,Grenada|LAGOON ROAD]]
*[[LANCE AUX EPINES,St.George,Grenada|LANCE AUX EPINES]]
*[[LONG GUTTER,St.George,Grenada|LONG GUTTER]]
*[[LOWER MORNE JALOUX,St.George,Grenada|LOWER MORNE JALOUX]]
*[[LOWER WOBURN,St.George,Grenada|LOWER WOBURN]]
*[[LOWTHER'S LANE,St.George,Grenada|LOWTHER'S LANE]]
*[[LUCAS STREET,St.George,Grenada|LUCAS STREET]]
*[[MALONEY STREET,St.George,Grenada|MALONEY STREET]]
*[[MANGO, NEW HAMPSHIRE,St.George,Grenada|MANGO, NEW HAMPSHIRE]]
*[[MARIAN,St.George,Grenada|MARIAN]]
*[[MARKET HILL,St.George,Grenada|MARKET HILL]]
*[[MARRAST HILL,St.George,Grenada|MARRAST HILL]]
*[[MAURICE BISHOP HIGHWAY, GRAND ANSE,St.George,Grenada|MAURICE BISHOP HIGHWAY, GRAND ANSE]]
*[[MAURICE BISHOP HWY, GRAND,St.George,Grenada|MAURICE BISHOP HWY, GRAND]]
*[[MELVILLE STREET,St.George,Grenada|MELVILLE STREET]]
*[[MOLINIERE,St.George,Grenada|MOLINIERE]]
*[[MONT TOUTE,St.George,Grenada|MONT TOUTE]]
*[[MORNE JALOUX,St.George,Grenada|MORNE JALOUX]]
*[[MORNE ROUGE,St.George,Grenada|MORNE ROUGE]]
*[[MORTLEY ROAD,St.George,Grenada|MORTLEY ROAD]]
*[[MT. AIRY,St.George,Grenada|MT. AIRY]]
*[[MT. GAY,St.George,Grenada|MT. GAY]]
*[[MT. HARTMAN,St.George,Grenada|MT. HARTMAN]]
*[[MT. MORITZ,St.George,Grenada|MT. MORITZ]]
*[[MT. PARNASSUS,St.George,Grenada|MT. PARNASSUS]]
*[[MT. RUSH,St.George,Grenada|MT. RUSH]]
*[[MT. WHELDALE,St.George,Grenada|MT. WHELDALE]]
*[[OBSERVATORY ROAD,St.George,Grenada|OBSERVATORY ROAD]]
*[[OLD FORT,St.George,Grenada|OLD FORT]]
*[[PADDOCK,St.George,Grenada|PADDOCK]]
*[[PARADE,St.George,Grenada|PARADE]]
*[[PARK LANE,St.George,Grenada|PARK LANE]]
*[[PERSEVERANCE,St.George,Grenada|PERSEVERANCE]]
*[[PETERSFIELD,St.George,Grenada|PETERSFIELD]]
*[[POINT SALINES,St.George,Grenada|POINT SALINES]]
*[[QUEEN'S PARK,St.George,Grenada|QUEEN'S PARK]]
*[[RADIX, MT. PARNASSUS,St.George,Grenada|RADIX, MT. PARNASSUS]]
*[[RAVINE, MT. GAY,St.George,Grenada|RAVINE, MT. GAY]]
*[[RICHMOND HILL,St.George,Grenada|RICHMOND HILL]]
*[[RIVER ROAD,St.George,Grenada|RIVER ROAD]]
*[[ROEBUCK,St.George,Grenada|ROEBUCK]]
*[[SANS SOUCI,St.George,Grenada|SANS SOUCI]]
*[[SCOTT STREET,St.George,Grenada|SCOTT STREET]]
*[[SHENDA,St.George,Grenada|SHENDA]]
*[[SIMMONS STREET,St.George,Grenada|SIMMONS STREET]]
*[[SNUG CORNER,St.George,Grenada|SNUG CORNER]]
*[[SPRINGS,St.George,Grenada|SPRINGS]]
*[[ST. GEORGE ESTATE,St.George,Grenada|ST. GEORGE ESTATE]]
*[[ST. JOHN STREET,St.George,Grenada|ST. JOHN STREET]]
*[[ST. JUILLE STREET,St.George,Grenada|ST. JUILLE STREET]]
*[[ST.PAUL'S,St.George,Grenada|ST.PAUL'S]]
*[[SUNSET VALLEY, POINT SALINES,St.George,Grenada|SUNSET VALLEY, POINT SALINES]]
*[[TANTEEN, TANTEEN TERRACE,St.George,Grenada|TANTEEN, TANTEEN TERRACE]]
*[[TEMPE,St.George,Grenada|TEMPE]]
*[[TETMUND,St.George,Grenada|TETMUND]]
*[[THE BOCAS,St.George,Grenada|THE BOCAS]]
*[[THE GREENS,St.George,Grenada|THE GREENS]]
*[[THE LIMES,St.George,Grenada|THE LIMES]]
*[[THE STONES, GRAND ANSE,St.George,Grenada|THE STONES, GRAND ANSE]]
*[[THE STONES, NEW HAMPSHIRE,St.George,Grenada|THE STONES, NEW HAMPSHIRE]]
*[[THE VILLA, LONG GUTTER,St.George,Grenada|THE VILLA, LONG GUTTER]]
*[[TRANQUIL LANE,St.George,Grenada|TRANQUIL LANE]]
*[[TRUE BLUE,St.George,Grenada|TRUE BLUE]]
*[[TRYNE ALLEY,St.George,Grenada|TRYNE ALLEY]]
*[[TURTLE BACK DRIVE, LANCE AUX,St.George,Grenada|TURTLE BACK DRIVE, LANCE AUX]]
*[[TYRREL STREET,St.George,Grenada|TYRREL STREET]]
*[[UPPER MORNE JALOUX,St.George,Grenada|UPPER MORNE JALOUX]]
*[[UPPER WOBURN,St.George,Grenada|UPPER WOBURN]]
*[[VENDOME,St.George,Grenada|VENDOME]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1287</ref>
*[[WELCOME,St.George,Grenada|WELCOME]]
*[[WHITE GUN,St.George,Grenada|WHITE GUN]]
*[[WHITE HALL, PARK LANE,St.George,Grenada|WHITE HALL, PARK LANE]]
*[[WILLIAMSON ROAD,St.George,Grenada|WILLIAMSON ROAD]]
*[[WILLIS,St.George,Grenada|WILLIS]]
*[[WOODLANDS,St.George,Grenada|WOODLANDS]]
*[[WOOLWICH ROAD,St.George,Grenada|WOOLWICH ROAD]]
*[[YOUNG STREET,St.George,Grenada|YOUNG STREET]]
==[[St.John,Grenada|St.John]]==
*[[BACK STREET,St.John,Grenada|BACK STREET]]
*[[BELVIDERE,St.John,Grenada|BELVIDERE]]
*[[BLACK BAY,St.John,Grenada|BLACK BAY]]
*[[BOYKES LANE, GOUYAVE,St.John,Grenada|BOYKES LANE, GOUYAVE]]
*[[BROOKLYN,St.John,Grenada|BROOKLYN]]
*[[BROTHERS ESTATE,St.John,Grenada|BROTHERS ESTATE]]
*[[CENTRAL DEPRADINE STREET,St.John,Grenada|CENTRAL DEPRADINE STREET]]
*[[CLOZIER,St.John,Grenada|CLOZIER]]
*[[CONCORD,St.John,Grenada|CONCORD]]
*[[CORNETS WALK, GOUYAVE,St.John,Grenada|CORNETS WALK, GOUYAVE]]
*[[COTTON BAILY,St.John,Grenada|COTTON BAILY]]
*[[D LANCE, UPPER DEPRADINE,St.John,Grenada|D LANCE, UPPER DEPRADINE]]
*[[DOCTOR BELLE,St.John,Grenada|DOCTOR BELLE]]
*[[DOUGALDSTON,St.John,Grenada|DOUGALDSTON]]
*[[EDWARD STREET, GOUYAVE,St.John,Grenada|EDWARD STREET, GOUYAVE]]
*[[FERGUSON'S LANE,St.John,Grenada|FERGUSON'S LANE]]
*[[FLORIDA,St.John,Grenada|FLORIDA]]
*[[GOUYAVE ESTATE,St.John,Grenada|GOUYAVE ESTATE]]
*[[GRAND ROY,St.John,Grenada|GRAND ROY]]
*[[HILLSVIEW, GOUYAVE,St.John,Grenada|HILLSVIEW, GOUYAVE]]
*[[LANGTON ROAD, GOUYAVE,St.John,Grenada|LANGTON ROAD, GOUYAVE]]
*[[LOWER DEPRADINE STREET,St.John,Grenada|LOWER DEPRADINE STREET]]
*[[MARIGOT,St.John,Grenada|MARIGOT]]
*[[MITCHELL'S LANE,St.John,Grenada|MITCHELL'S LANE]]
*[[MONGO ROAD, GOUYAVE ESTATE,St.John,Grenada|MONGO ROAD, GOUYAVE ESTATE]]
*[[MT. GRANBY,St.John,Grenada|MT. GRANBY]]
*[[MT. PLASIR,,Grenada|MT. PLASIR]]
*[[MT. NESBIT,St.John,Grenada|MT. NESBIT]]
*[[NEW STREET, EDWARD STREET,St.John,Grenada|NEW STREET, EDWARD STREET]]
*[[NEW STREET, GOUYAVE,St.John,Grenada|NEW STREET, GOUYAVE]]
*[[PALMISTE,St.John,Grenada|PALMISTE]]
*[[QUEEN STREET, ST. JOHN'S,St.John,Grenada|QUEEN STREET, ST. JOHN'S]]
*[[RENNIE,St.John,Grenada|RENNIE]]
*[[RIVER LANE, GOUYAVE ESTATE,St.John,Grenada|RIVER LANE, GOUYAVE ESTATE]]
*[[RIVER LANE, GOUYAVE,St.John,Grenada|RIVER LANE, GOUYAVE]]
*[[ROSEMOUNT,St.John,Grenada|ROSEMOUNT]]
*[[SCHOOL LANE, GOUYAVE,St.John,Grenada|SCHOOL LANE, GOUYAVE]]
*[[ST BENOIT STREET, GOUYAVE,St.John,Grenada|ST BENOIT STREET, GOUYAVE]]
*[[ST DOMINIC STREET, GOUYAVE,St.John,Grenada|ST DOMINIC STREET, GOUYAVE]]
*[[ST DOMINIC, GOUYAVE,St.John,Grenada|ST DOMINIC, GOUYAVE]]
*[[ST FRANCIS, GOUYAVE,St.John,Grenada|ST FRANCIS, GOUYAVE]]
*[[ST PETERS STREET, GOUYAVE,St.John,Grenada|ST PETERS STREET, GOUYAVE]]
*[[ST PETERS, GOUYAVE,St.John,Grenada|ST PETERS, GOUYAVE]]
*[[ST. FRANCIS STREET,St.John,Grenada|ST. FRANCIS STREET]]
*[[ST. PETER STREET,St.John,Grenada|ST. PETER STREET]]
*[[LOWER DEPRADINE, GOUYAVE,,Grenada|LOWER DEPRADINE, GOUYAVE]]
*[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]]
*[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]]
*[[UPPER DEPRADINE STREET,St.John,Grenada|UPPER DEPRADINE STREET]]
*[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]]
*[[VICTORIA ROAD, GOUYAVE,St.John,Grenada|VICTORIA ROAD, GOUYAVE]]
*[[VICTORIA STREET,St.John,Grenada|VICTORIA STREET]]
*[[WATERLOO,St.John,Grenada|WATERLOO]]
*[[WOODFORD,St.John,Grenada|WOODFORD]]
==[[St.David,Grenada|St.David]]==
*[[APRES TOUTE,St.David,Grenada|APRES TOUTE]]
*[[BAILLES BACOLET,St.David,Grenada|BAILLES BACOLET]]
*[[BEATON,St.David,Grenada|BEATON]]
*[[BELLE ISLE,St.David,Grenada|BELLE ISLE]]
*[[BELLE VUE,St.David,Grenada|BELLE VUE]]
*[[BOCAGE,St.David,Grenada|BOCAGE]]
*[[CHAMPFLEURS,St.David,Grenada|CHAMPFLEURS]]
*[[COALS GAPS,St.David,Grenada|COALS GAPS]]
*[[CONTENT,St.David,Grenada|CONTENT]]
*[[CORINTH,St.David,Grenada|CORINTH]]
*[[DUDMAR,St.David,Grenada|DUDMAR]]
*[[EPPIN FOREST,St.David,Grenada|EPPIN FOREST]]
*[[HARMONY HALL,St.David,Grenada|HARMONY HALL]]
*[[LA CALOHME,St.David,Grenada|LA CALOHME]]
*[[LA FEMME,St.David,Grenada|LA FEMME]]
*[[LA FLORETTA,St.David,Grenada|LA FLORETTA]]
*[[LA PASTORA,St.David,Grenada|LA PASTORA]]
*[[LA SAGESSE,St.David,Grenada|LA SAGESSE]]
*[[LA TANTE,St.David,Grenada|LA TANTE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1363</ref>
*[[MARLMOUNT,St.David,Grenada|MARLMOUNT]]
*[[MARDIGRAS,St.David,Grenada|MARDIGRAS]]
*[[MARLMOUNT, GLEBE LAND,St.David,Grenada|MARLMOUNT, GLEBE LAND]]
*[[MAULTY,St.David,Grenada|MAULTY]]
*[[MAYANN, CONSTANTINE,St.David,Grenada|MAYANN, CONSTANTINE]]
*[[MINORCA,St.David,Grenada|MINORCA]]
*[[MORNE DELICE,St.David,Grenada|MORNE DELICE]]
*[[MON REPOS,St.David,Grenada|MON REPOS]]
*[[MT. AGNES,St.David,Grenada|MT. AGNES]]
*[[MT. DISIRE,St.David,Grenada|MT. DISIRE]]
*[[MT. ROSE,St.David,Grenada|MT. ROSE]]
*[[MYANN, CONSTANTINE,St.David,Grenada|MYANN, CONSTANTINE]]
*[[NEW WESTERHALL,St.David,Grenada|NEW WESTERHALL]]
*[[OLD WESTERHALL,St.David,Grenada|OLD WESTERHALL]]
*[[PERDMONTEMPS,St.David,Grenada|PERDMONTEMPS]]
*[[PETITE BACAYE, NEW,St.David,Grenada|PETITE BACAYE, NEW]]
*[[PETITE ESPERANCE,St.David,Grenada|PETITE ESPERANCE]]
*[[PETITE ETANG,St.David,Grenada|PETITE ETANG]]
*[[POMME ROSE,St.David,Grenada|POMME ROSE]]
*[[RED GATE,St.David,Grenada|RED GATE]]
*[[REDMUD,St.David,Grenada|REDMUD]]
*[[REQUIN,St.David,Grenada|REQUIN]]
*[[SLINGER STREET,St.David,Grenada|SLINGER STREET]]
*[[SYRACUSE,St.David,Grenada|SYRACUSE]]
*[[THEBAIDE,St.David,Grenada|THEBAIDE]]
*[[TABOR,St.David,Grenada|TABOR]]
*[[UPPER LAURA,St.David,Grenada|UPPER LAURA]]
*[[VINCENNES,St.David,Grenada|VINCENNES]]
*[[WESTERHALL POINT,St.David,Grenada|WESTERHALL POINT]]
*[[WINDSOR,St.David,Grenada|WINDSOR]]
*[[WINDSOR FOREST,St.David,Grenada|WINDSOR FOREST]]
==[[Carriacou and Petite Martinique,Grenada|Carriacou and Petite Martinique]]==
*[[BAYALEAU,Carriacou,Grenada|BAYALEAU]]
*[[BEAUSEJOUR,Carriacou,Grenada|BEAUSEJOUR]]
*[[BELAIR,Carriacou,Grenada|BELAIR]]
*[[BELLE VUE,Carriacou,Grenada|BELLE VUE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1237</ref>
*[[BELMONT,Carriacou,Grenada|BELMONT]]
*[[BOGLES,Carriacou,Grenada|BOGLES]]
*[[BRUNSWICK,Carriacou,Grenada|BRUNSWICK]]
*[[CHURCH STREET, HILLSBOROUGH,Carriacou,Grenada|CHURCH STREET, HILLSBOROUGH]]
*[[CRAIGSTON,Carriacou,Grenada|CRAIGSTON]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1385]</ref>
*[[CHERRY HILL,Carriacou,Grenada|CHERRY HILL]]
*[[DOVER,Carriacou,Grenada|DOVER]]
*[[DUMFRIES,Carriacou,Grenada|DUMFRIES]]
*[[GRAND BAY,Carriacou,Grenada|GRAND BAY]]
*[[HARVEY VALE,Carriacou,Grenada|HARVEY VALE]]
*[[HERMITAGE,Carriacou,Grenada|HERMITAGE]]
*[[HILLSBOROUGH,Carriacou,Grenada|HILLSBOROUGH]]
*[[L'ESTERRE,Carriacou,Grenada|L'ESTERRE]]
*[[LAURISTON,Carriacou,Grenada|LAURISTON]]
*[[LIMLAIR,Carriacou,Grenada|LIMLAIR]]
*[[MELDRUM,Carriacou,Grenada|MELDRUM]]
*[[MT. DESIRE,Carriacou,Grenada|MT. DESIRE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1237</ref>
*[[MT. PLEASANT,Carriacou,Grenada|MT. PLEASANT]]
*[[MT. ST ERVANS, L'ESTERRIE,Carriacou,Grenada|MT ST ERVANS, L'ESTERRIE]]
*[[MT. ROYAL,Carriacou,Grenada|MT. ROYAL]]
*[[PROSPECT HALL,Carriacou,Grenada|PROSPECT HALL]]
*[[SIX ROADS,Carriacou,Grenada|SIX ROADS]]
*[[TOP HILL,Carriacou,Grenada|TOP HILL]]
*[[WINDWARD,Carriacou,Grenada|WINDWARD]]
*[[PETITE MARTINIQUE,PETIT MARTINIQUE,Grenada|PETITE MARTINIQUE]]
==[[St.Andrew,Grenada|St.Andrew]]==
*[[MT. FANN,St. Andrew,Grenada|MT. FANN]]
*[[ADELPHI,St.Andrew,Grenada|ADELPHI]]
*[[AHOMA,St.Andrew,Grenada|AHOMA]]
*[[BALTHAZAR,St.Andrew,Grenada|BALTHAZAR]]
*[[BAYROAD,St.Andrew,Grenada|BAYROAD]]
*[[BLAIZE,St.Andrew,Grenada|BLAIZE]]
*[[BAMBOO,St.Andrew,Grenada|BAMBOO]]
*[[BATTLE HILL,St.Andrew,Grenada|BATTLE HILL]]
*[[BEAUREGARD,St.Andrew,Grenada|BEAUREGARD]]
*[[BELLE VUE,St.Andrew,Grenada|BELLE VUE]]
*[[BELVEDERE,St.Andrew,Grenada|BELVEDERE]]
*[[BEN JONES STREET,St.Andrew,Grenada|BEN JONES STREET]]
*[[BIRCHGROVE,St.Andrew,Grenada|BIRCHGROVE]]
*[[BYELANDS,St.Andrew,Grenada|BYELANDS]]
*[[CAFE,St.Andrew,Grenada|CAFE]]
*[[CANAL ROAD,St.Andrew,Grenada|CANAL ROAD]]
*[[CARRIERE,St.Andrew,Grenada|CARRIERE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1305</ref>
*[[CARRUTH,St.Andrew,Grenada|CARRUTH]]
*[[CASTIGNE,St.Andrew,Grenada|CASTIGNE]]
*[[CHAPEL ROAD,St.Andrew,Grenada|CHAPEL ROAD]]
*[[COCOA ROAD,St.Andrew,Grenada|COCOA ROAD]]
*[[CODRONA,St.Andrew,Grenada|CODRONA]]
*[[UPPER CONFERENCE,St.Andrew,Grenada|UPPER CONFERENCE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1306</ref>
*[[LOWER CONFERENCE,St.Andrew,Grenada|LOWER CONFERENCE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1307</ref>
*[[COOKHILL ROAD,St.Andrew,Grenada|COOKHILL ROAD]]
*[[CROCHU,St.Andrew,Grenada|CROCHU]]
*[[DE BLANDEAU,St.Andrew,Grenada|DE BLANDEAU]]
*[[DUNFERMLINE,St.Andrew,Grenada|DUNFERMLINE]]
*[[DURRANT ROAD,St.Andrew,Grenada|DURRANT ROAD]]
*[[FORD HILL ROAD,St.Andrew,Grenada|FORD HILL ROAD]]
*[[FELIX PARK,St.Andrew,Grenada|FELIX PARK]]
*[[GRANLETTE,St.Andrew,Grenada|GRANLETTE]]
*[[GEORGE V. STREET,St.Andrew,Grenada|GEORGE V. STREET]]
*[[GLADSTONE ROAD,St.Andrew,Grenada|GLADSTONE ROAD]]
*[[GOUYAVE,St.Andrew,Grenada|GOUYAVE]]
*[[GRAND BACOLET,St.Andrew,Grenada|GRAND BACOLET]]
*[[GRAND BRAS,St.Andrew,Grenada|GRAND BRAS]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1303</ref>
*[[GRIFFIN LANE,St.Andrew,Grenada|GRIFFIN LANE]]
*[[GUPO,St.Andrew,Grenada|GUPO]]
*[[HARFORD VILLAGE,St.Andrew,Grenada|HARFORD VILLAGE]]
*[[HERMON,St.Andrew,Grenada|HERMON]]
*[[HILLS ROAD, LOWER,St.Andrew,Grenada|HILLS ROAD]]
*[[HOPE,St.Andrew,Grenada|HOPE]]
*[[HOPE CITY,St.Andrew,Grenada|HOPE CITY]]
*[[LA DIGUE,St.Andrew,Grenada|LA DIGUE]]
*[[LA FILLETTE,St.Andrew,Grenada|LA FILLETTE]]
*[[LA POTERIE,St.Andrew,Grenada|LA POTERIE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/13121</ref>
*[[L'ESTERRIE,St.Andrew,Grenada|L'ESTERRIE]]
*[[LOWER CAPITOL,St.Andrew,Grenada|LOWER CAPITOL]]
*[[LOWER HARFORD VILLAGE,St.Andrew,Grenada|LOWER HARFORD VILLAGE]]
*[[MAHOUT,St.Andrew,Grenada|MAHOUT]]
*[[MAMMA CANNES,St.Andrew,Grenada|MAMMA CANNES]]
*[[MARQUIS,St.Andrew,Grenada|MARQUIS]]
*[[MC NELLIE ALLEY, SAUTEURS,St.Andrew,Grenada|MC NELLIE ALLEY, SAUTEURS]]
*[[MC NEILLY, SAUTEURS,St.Andrew,Grenada|MC NEILLY, SAUTEURS]]
*[[MEADOW,St.Andrew,Grenada|MEADOW]]
*[[MELDRUM,St.Andrew,Grenada|MELDRUM]]
*[[MIRABEAU,St.Andrew,Grenada|MIRABEAU]]
*[[MORNE LOUNGE,St.Andrew,Grenada|MORNE LOUNGE]]
*[[MOYAH,St.Andrew,Grenada|MOYAH]]
*[[MT. ST ERVANS, LA DIGUE,St.Andrew,Grenada|MT ST ERVANS, LA DIGUE]]
*[[MT. CARMEL,St.Andrew,Grenada|MT. CARMEL]]
*[[MT. HORNE,St.Andrew,Grenada|MT. HORNE]]
*[[MT. PLEASANT,St.Andrew,Grenada|MT. PLEASANT]]
*[[MT. SEALEY,St.Andrew,Grenada|MT. SEALEY]]
*[[MUNICH,St.Andrew,Grenada|MUNICH]]
*[[NEW HAMPSHIRE,St.Andrew,Grenada|NEW HAMPSHIRE]]
*[[NOELSVILLE,St.Andrew,Grenada|NOELSVILLE]]
*[[PARACLETE,St.Andrew,Grenada|PARACLETE]]
*[[PARADISE,St.Andrew,Grenada|PARADISE]]
*[[PEARLS,St.Andrew,Grenada|PEARLS]]
*[[PLATEAU,St.Andrew,Grenada|PLATEAU]]
*[[PLEASANCE,St.Andrew,Grenada|PLEASANCE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/99</ref>
*[[POST ROYAL,St.Andrew,Grenada|POST ROYAL]]
*[[PROVIDENCE,St.Andrew,Grenada|PROVIDENCE]]
*[[RETREAT,St.Andrew,Grenada|RETREAT]]
*[[RICHMOND,St.Andrew,Grenada|RICHMOND]]
*[[RIVULET LANE,St.Andrew,Grenada|RIVULET LANE]]
*[[SABB,St.Andrew,Grenada|SABB]]
*[[SALISBURY ROAD,St.Andrew,Grenada|SALISBURY ROAD]]
*[[SAMUEL AVENUE, CALIVIGNY,St.Andrew,Grenada|SAMUEL AVENUE, CALIVIGNY]]
*[[SEATON BROWNE STREET,St.Andrew,Grenada|SEATON BROWNE STREET]]
*[[SEATON JAMES STREET,St.Andrew,Grenada|SEATON JAMES STREET]]
*[[SENDALL STREET,St.Andrew,Grenada|SENDALL STREET]]
*[[SIMON,St.Andrew,Grenada|SIMON]]
*[[SNELL HALL,St.Andrew,Grenada|SNELL HALL]]
*[[SOUBISE,St.Andrew,Grenada|SOUBISE]]
*[[SPRING GARDEN,St.Andrew,Grenada|SPRING GARDEN]]
*[[ST. CLOUDS,St.Andrew,Grenada|ST. CLOUDS]]
*[[ST. JAMES,St.Andrew,Grenada|ST. JAMES]]
*[[ST. JOHNS,St.Andrew,Grenada|ST. JOHNS]]
*[[TOUS CONGO,St.Andrew,Grenada|TOUS CONGO]]
*[[TELESCOPE,St.Andrew,Grenada|TELESCOPE]]
*[[TIVOLI,St.Andrew,Grenada|TIVOLI]]
*[[TUILLIERIES,St.Andrew,Grenada|TUILLIERIES]]
*[[UNION,St.Andrew,Grenada|UNION]]
*[[UPPER CAPITOL,St.Andrew,Grenada|UPPER CAPITOL]]
*[[THE VILLA,St.Andrew,Grenada|THE VILLA]]
*[[VILLAGE ROAD,St.Andrew,Grenada|VILLAGE ROAD]]
*[[VICTORIA STREET,St.Andrew,Grenada|VICTORIA STREET]]
*[[WALKER,St.Andrew,Grenada|WALKER]]
*[[WELLS ROAD,St.Andrew,Grenada|WELLS ROAD]]
==[[St.Mark,Grenada|St.Mark]]==
*[[BOCAGE,St.Mark,Grenada|BOCAGE]]
*[[BOCAGE, BONAIR,St.Mark,Grenada|BOCAGE, BONAIR]]
*[[BONAIR,St.Mark,Grenada|BONAIR]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1366</ref>
*[[BONIAR ROAD, BONAIR,St.Mark,Grenada|BONIAR ROAD, BONAIR]]
*[[CHARLOTTE VALE,St.Mark,Grenada|CHARLOTTE VALE]]
*[[COAST GUARD,St.Mark,Grenada|COAST GUARD]]
*[[CRUICKSHANK ROAD,St.Mark,Grenada|CRUICKSHANK ROAD]]
*[[CRUICKSHANK ROAD, VICTORIA,St.Mark,Grenada|CRUICKSHANK ROAD, VICTORIA]]
*[[DARVEY,St.Mark,Grenada|DARVEY]]
*[[DE VILLA,St.Mark,Grenada|DE VILLA]]
*[[DIAMOND ESTATE,St.Mark,Grenada|DIAMOND ESTATE]]
*[[DIAMOND STREET, VICTORIA,St.Mark,Grenada|DIAMOND STREET, VICTORIA]]
*[[DIEGO PIECE,St.Mark,Grenada|DIEGO PIECE]]
*[[DUQUESNE,St.Mark,Grenada|DUQUESNE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1367</ref>
*[[FAIR FIELD ROAD, VICTORIA,St.Mark,Grenada|FAIR FIELD ROAD, VICTORIA]]
*[[GALL STREET, VICTORIA,St.Mark,Grenada|GALL STREET, VICTORIA]]
*[[GROSS POINT, GROSS POINT VILLA,St.Mark,Grenada|GROSS POINT, GROSS POINT VILLA]]
*[[INDUSTRY,St.Mark,Grenada|INDUSTRY]]
*[[LA RESOURCE,St.Mark,Grenada|LA RESOURCE]]
*[[MARAN,St.Mark,Grenada|MARAN]]
*[[MT. EDGECOMBE,St.Mark,Grenada|MT. EDGECOMBE]]
*[[MUNRO STREET, VICTORIA,St.Mark,Grenada|MUNRO STREET, VICTORIA]]
*[[NON-PARIEL,St.Mark,Grenada|NON-PARIEL]]
*[[PETIT BOCAGE,St.Mark,Grenada|PETIT BOCAGE]]
*[[QUEEN STREET, VICTORIA,St.Mark,Grenada|QUEEN STREET, VICTORIA]]
*[[RESOURCE,St.Mark,Grenada|RESOURCE]]
*[[RESOURCE, RESOURCE,St.Mark,Grenada|RESOURCE, RESOURCE]]
*[[RIVER SALLEE,St.Mark,Grenada|RIVER SALLEE]]
*[[SAMARITAN,St.Mark,Grenada|SAMARITAN]]
*[[SAMARITAN, DIEGO PIECE,St.Mark,Grenada|SAMARITAN, DIEGO PIECE]]
*[[ST DAVID STREET, VICTORIA,St.Mark,Grenada|ST DAVID STREET, VICTORIA]]
*[[ST JOHN STREET, VICTORIA,St.Mark,Grenada|ST JOHN STREET, VICTORIA]]
*[[STEWAD COTTAGE,St.Mark,Grenada|STEWAD COTTAGE]]
*[[VICTORIA,St.Mark,Grenada|VICTORIA]]
*[[WALTHAM,St.Mark,Grenada|WALTHAM]]
==[[St.Patrick,Grenada|St.Patrick]]==
*[[BATHWAY,St.Patrick,Grenada|BATHWAY]]
*[[BAY ROAD, SAUTEURS,St.Patrick,Grenada|BAY ROAD, SAUTEURS]]
*[[BELMONT,St.Patrick,Grenada|BELMONT]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1317</ref>
*[[CEDARS,St.Patrick,Grenada|CEDARS]]
*[[CHANTIMELLE,St.Patrick,Grenada|CHANTIMELLE]]
*[[CROSS STREET, SAUTEURS,St.Patrick,Grenada|CROSS STREET, SAUTEURS]]
*[[GLEBE LAND, SAUTEURS,St.Patrick,Grenada|GLEBE LAND, SAUTEURS]]
*[[GLEBE STREET, SAUTEURS,St.Patrick,Grenada|GLEBE STREET, SAUTEURS]]
*[[CORNWALL STREET, SAUTEURS,,Grenada|CORNWALL STREET, SAUTEURS]]
*[[HERMITAGE,St.Patrick,Grenada|HERMITAGE]]
*[[HIGH GATE, MORNE FENDUE,St.Patrick,Grenada|HIGH GATE, MORNE FENDUE]]
*[[HIGH STREET, SAUTEURS,St.Patrick,Grenada|HIGH STREET, SAUTEURS]]
*[[HILL STREET, SAUTEURS,St.Patrick,Grenada|HILL STREET, SAUTEURS]]
*[[LA FORTUNE,St.Patrick,Grenada|LA FORTUNE]]
*[[LA TASTE,St.Patrick,Grenada|LA TASTE]]
*[[LEVERA,St.Patrick,Grenada|LEVERA]]
*[[MADEYS,St.Patrick,Grenada|MADEYS]]
*[[MAHOUT, ROSE HILL,St.Patrick,Grenada|MAHOUT, ROSE HILL]]
*[[MAIN STREET, SAUTEURS,St.Patrick,Grenada|MAIN STREET, SAUTEURS]]
*[[MARLI,St.Patrick,Grenada|MARLI]]
*[[MC NEILLY ALLEY, MARLI,St.Patrick,Grenada|MC NEILLY ALLEY, MARLI]]
*[[MC NELLIE ALLEY, SAUTEURS,St.Patrick,Grenada|MC NELLIE ALLEY, SAUTEURS]]
*[[MORNE FENDUE,St.Patrick,Grenada|MORNE FENDUE]]
*[[MT. CRAVEN,St.Patrick,Grenada|MT. CRAVEN]]
*[[MT. RICH,St.Patrick,Grenada|MT. RICH]]
*[[MT. ROSE,St.Patrick,Grenada|MT. ROSE]]
*[[MT. REUIL,,Grenada|MT. REUIL]]
*[[PEGGYS WHIM, HERMITAGE,St.Patrick,Grenada|PEGGYS WHIM, HERMITAGE]]
*[[PLAINS,St.Patrick,Grenada|PLAINS]]
*[[POINTZFIELD,St.Patrick,Grenada|POINTZFIELD]]
*[[PROSPECT,St.Patrick,Grenada|PROSPECT]]
*[[RED HEAD STREET, LA FORTUNE,St.Patrick,Grenada|RED HEAD STREET, LA FORTUNE]]
*[[RED HEAD STREET, SAUTEURS,St.Patrick,Grenada|RED HEAD STREET, SAUTEURS]]
*[[RED MUD,St.Patrick,Grenada|RED MUD]]
*[[RIVER SALLEE,St.Patrick,Grenada|RIVER SALLEE]]
*[[ROSE HILL,St.Patrick,Grenada|ROSE HILL]]
*[[SALISBURY RD, SAUTEURS,St.Patrick,Grenada|SALISBURY RD, SAUTEURS]]
*[[SALISBURY STREET, SAUTEURS,St.Patrick,Grenada|SALISBURY STREET, SAUTEURS]]
*[[SAUTEURS,St.Patrick,Grenada|SAUTEURS]]
*[[THE VILLA, SAUTEURS,St.Patrick,Grenada|THE VILLA, SAUTEURS]]
== Uncategorized==
*[[ADAM'S ALLEY,,Grenada|ADAM'S ALLEY]]
*[[AFRICA,,Grenada|AFRICA]]
*[[APSLEY HILL,,Grenada|APSLEY HILL]]
*[[BLUGGO,,Grenada|BLUGGO]]
*[[BYWAY,,Grenada|BYWAY]]
*[[CELESTE,,Grenada|CELESTE]]
*[[CENTRAL DEPRADINE, GOUYAVE,,Grenada|CENTRAL DEPRADINE, GOUYAVE]]
*[[CHADDEAU,,Grenada|CHADDEAU]]
*[[CHANCERY STREET, MUNRO,,Grenada|CHANCERY STREET, MUNRO]]
*[[CHAPEL'S LANE,,Grenada|CHAPEL'S LANE]]
*[[CHURCH HILL ROAD,,Grenada|CHURCH HILL ROAD]]
*[[COOPER'S HILL,,Grenada|COOPER'S HILL]]
*[[DE SILLES,,Grenada|DE SILLES]]
*[[DEHAR, GLEBE LAND,,Grenada|DEHAR, GLEBE LAND]]
*[[DOTHAN ESTATE,,Grenada|DOTHAN ESTATE]]
*[[DURRANT ROAD,,Grenada|DURRANT ROAD]]
*[[FIELD STREET,,Grenada|FIELD STREET]]
*[[FOUNTAIN,,Grenada|FOUNTAIN]]
*[[GROSS POINT VILLA,,Grenada|GROSS POINT VILLA]]
*[[HENRY STREET,,Grenada|HENRY STREET]]
*[[JONES ROAD,,Grenada|JONES ROAD]]
*[[LOWER CONFERENCE,,Grenada|LOWER CONFERENCE]]
*[[LOWER DEPRADINE, GOUYAVE,,Grenada|LOWER DEPRADINE, GOUYAVE]]
*[[LOWER LAURA,,Grenada|LOWER LAURA]]
*[[LYDER,,Grenada|LYDER]]
*[[MAHOUT, SAUTEURS,,Grenada|MAHOUT, SAUTEURS]]
*[[MAIN STREET, SAUTEURS,,Grenada|MAIN STREET, SAUTEURS]]
*[[MALIGNON,,Grenada|MALIGNON]]
*[[MARINE VILLA,,Grenada|MARINE VILLA]]
*[[MAUCHETTE,,Grenada|MAUCHETTE]]
*[[MC LAINE ALLEY, SAUTEURS,,Grenada|MC LAINE ALLEY, SAUTEURS]]
*[[MELROSE,,Grenada|MELROSE]]
*[[MT. ALEXANDER,,Grenada|MT. ALEXANDER]]
*[[MT. ANON,,Grenada|MT. ANON]]
*[[MT. CUMMA,,Grenada|MT. CUMMA]]
*[[MT. FELIX,,Grenada|MT. FELIX]]
*[[MT. RODNEY,,Grenada|MT. RODNEY]]
*[[MT. WILLIAMS,,Grenada|MT. WILLIAMS]]
*[[MUNRO STREET,,Grenada|MUNRO STREET]]
*[[MUNROE STREET, VICTORIA,,Grenada|MUNROE STREET, VICTORIA]]
*[[NETTLE POINT,,Grenada|NETTLE POINT]]
*[[NEW GARDENS,,Grenada|NEW GARDENS]]
*[[OTTLEY'S LANE,,Grenada|OTTLEY'S LANE]]
*[[PARK ESTATE,,Grenada|PARK ESTATE]]
*[[PENNY RETREAT,,Grenada|PENNY RETREAT]]
*[[SAMUELS AVENUE,,Grenada|SAMUELS AVENUE]]
*[[SCHOOL LANE,,Grenada|SCHOOL LANE]]
*[[ST. BENOIT'S STREET,,Grenada|ST. BENOIT'S STREET]]
*[[ST. CYR,,Grenada|ST. CYR]]
*[[ST. DAVID STREET,,Grenada|ST. DAVID STREET]]
*[[ST. DOMINIC'S ST.,,Grenada|ST. DOMINIC'S ST.]]
*[[TAYBAKAY,,Grenada|TAYBAKAY]]
*[[TAYLOR,,Grenada|TAYLOR]]
*[[THE SUMMIT,,Grenada|THE SUMMIT]]
*[[THE VILLA, THE ROCK,,Grenada|THE VILLA, THE ROCK]]
*[[VINEYARD,,Grenada|VINEYARD]]
284819bb45bf37675cd85a875c96eac660f04a45
Travel to Carriacou and Petite Martinique
0
91
185
2022-10-18T12:05:16Z
Wikiricky
1
added new page
wikitext
text/x-wiki
== By Boat ==
The Osprey Ferry [https://www.ospreylines.com/ see website for fares and schedule]
Tyrell Bay Express [https://www.facebook.com/tyrrelbayexpress/ see website for fares and schedule]
ea034b91e12f483a148ef8b370cb1371ceacdca5
Seaboot
0
2
186
2
2023-04-28T16:12:03Z
Beverly
33
misspelled word
wikitext
text/x-wiki
There are many boats in Grenada.
81378f3baa1e119d2a13d46b4beaf7f3fececd63
National Heroes Day
0
92
187
2023-10-20T09:31:17Z
74.117.87.10
0
page creation
wikitext
text/x-wiki
A national holiday in Grenada to honor the victims of the October 19 1983 events. The first observance of Heroes Day occurred on October 19, 2023, 40 years after the events of October 19 1983. The events of the first celebration was an Ecumenical Service at the national stadium, 1 pm ringing of church bells, and a light tribute at 7pm on the Carenarge.
9072c343d9b81c79dc92d511fc89690cd980da57
188
187
2023-10-20T09:36:49Z
Wikiricky
1
added links
wikitext
text/x-wiki
A national holiday in Grenada to honor the victims of the October 19 1983 events. The first observance of Heroes Day occurred on October 19, 2023, 40 years after the events of October 19 1983. The events of the first celebration was an [[Ecumenical Service]] at the [[Grenada National Stadium]], 1 pm ringing of church bells, and a light tribute at 7pm on [[the Carenarge.]]
19e48eb6bdff690c4ae601cad18b7c96e91bddf0
189
188
2023-10-20T09:44:28Z
Wikiricky
1
wikitext
text/x-wiki
{{Infobox holiday
|holiday_name = National Heroes Day
|type = [[Bank holiday in Grenada]]
|scheduling = 19 October
|duration = 1 day
|month = October
|firsttime = 19 October, 2023
}}
A national holiday in Grenada to honor the victims of the October 19 1983 events. The first observance of Heroes Day occurred on October 19, 2023, 40 years after the events of October 19 1983. The events of the first celebration was an [[Ecumenical Service]] at the [[Grenada National Stadium]], 1 pm ringing of church bells, and a light tribute at 7pm on [[the Carenarge.]]
a7d3b0ecb63e59def2446eb17d3cef297d2a5fcd
Beaches in Grenada
0
93
192
2024-11-25T01:57:05Z
Kiki
34
Created page with "== Carriacou and Petite Martinique == * Paradise Beach * L'Esterre Beach * Anse La Roche Bay * Petite Carenage * Hillsborough Beach * Sandy Island Beach * Sparrow Bay * Black Sand Beach * Tyrrel Bay == St. Andrew's == * Power Beach La Poterie * Hope Beach * Marquis Beach * La Baye * Telescope Beach * Pearls Beach == St. David == * La Sagesse Beach * David Beach (Davee) == St. George == * Grand Anse Beach * Magazine Beach * Morne Rouge (BBC) Beach * True Blue Bay *..."
wikitext
text/x-wiki
== Carriacou and Petite Martinique ==
* Paradise Beach
* L'Esterre Beach
* Anse La Roche Bay
* Petite Carenage
* Hillsborough Beach
* Sandy Island Beach
* Sparrow Bay
* Black Sand Beach
* Tyrrel Bay
== St. Andrew's ==
* Power Beach La Poterie
* Hope Beach
* Marquis Beach
* La Baye
* Telescope Beach
* Pearls Beach
== St. David ==
* La Sagesse Beach
* David Beach (Davee)
== St. George ==
* Grand Anse Beach
* Magazine Beach
* Morne Rouge (BBC) Beach
* True Blue Bay
* Mount Pandy Beach
* Fort Jeudy Beach
* Black Bay Beach
* Portici Beach
* Grooms Beach
* L'Anse Aux Epines Beach
* Pink Gin Beach
*
*
[[Category:Carriacou]]
[[Category:St.Andrew's]]
[[Category:St.David]]
[[Category:St.George]]
[[Category:St.John]]
[[Category:St.Mark]]
[[Category:St.Patrick]]
[[Category:Petite Martinique]]
67787646e7d57985ddf212bdbc795b19c712a145
193
192
2024-11-25T02:17:09Z
Kiki
34
wikitext
text/x-wiki
== Carriacou and Petite Martinique ==
* Paradise Beach
* L'Esterre Beach
* Anse La Roche Bay
* Petite Carenage
* Hillsborough Beach
* Sandy Island Beach
* Sparrow Bay
* Black Sand Beach
* Tyrrel Bay<ref>Our Stories - Grenada Tourism Authority</ref>
== St. Andrew's ==
* Power Beach La Poterie
* Hope Beach
* Marquis Beach
* La Baye
* Telescope Beach
* Pearls Beach
== St. David ==
* La Sagesse Beach
* David Beach (Davee)
== St. George ==
* Grand Anse Beach<ref>Grand Anse Beach - Grenada Tourism Authority</ref>
* Grooms Beach<ref>Grooms Beach (Parc a Boeuf) - Grenada Tourism Authority</ref>
* Magazine Beach
* Morne Rouge (BBC) Beach
* True Blue Bay
* Mount Pandy Beach
* Fort Jeudy Beach
* Black Bay Beach
* Portici Beach
* L'Anse Aux Epines Beach<ref>Lance Aux Epines Beach - Grenada Tourism Authority</ref>
* Pink Gin Beach
*
[[Category:Carriacou]]
[[Category:St.Andrew's]]
[[Category:St.David]]
[[Category:St.George]]
[[Category:St.John]]
[[Category:St.Mark]]
[[Category:St.Patrick]]
[[Category:Petite Martinique]]
6870a86398228fb86b0fd1477a5e93e551234e31
194
193
2024-11-25T02:37:50Z
Kiki
34
/* Carriacou and Petite Martinique */
wikitext
text/x-wiki
== Carriacou and Petite Martinique ==
* Paradise Beach<ref>Paradise Beach - Grenada Tourism Authority</ref>
* L'Esterre Beach
* Anse La Roche Bay<ref>Anse La Roche - Grenada Tourism Authority</ref>
* Petite Carenage
* Hillsborough Beach
* Sandy Island Beach
* Sparrow Bay
* Black Sand Beach
* Tyrrel Bay<ref>Our Stories - Grenada Tourism Authority</ref>
== St. Andrew's ==
* Power Beach La Poterie
* Hope Beach
* Marquis Beach
* La Baye
* Telescope Beach
* Pearls Beach
== St. David ==
* La Sagesse Beach
* David Beach (Davee)
== St. George ==
* Grand Anse Beach<ref>Grand Anse Beach - Grenada Tourism Authority</ref>
* Grooms Beach<ref>Grooms Beach (Parc a Boeuf) - Grenada Tourism Authority</ref>
* Benji Bay Woburn
* Magazine Beach
* Morne Rouge (BBC) Beach
* True Blue Bay
* Mount Pandy Beach
* Fort Jeudy Beach
* Black Bay Beach
* Portici Beach
* L'Anse Aux Epines Beach<ref>Lance Aux Epines Beach - Grenada Tourism Authority</ref>
* Pink Gin Beach
== St Patrick ==
* Levera Beach
* Sauteurs Beach
* Bathway Beach
95def5c7ca327bc6477c727f3daea3accf98d3ae
197
194
2024-11-26T02:56:29Z
104.245.95.82
0
wikitext
text/x-wiki
== Carriacou and Petite Martinique ==
* Paradise Beach<ref>Paradise Beach - Grenada Tourism Authority</ref>
* L 'Esterre Beach
* Anse La Roche Bay<ref>Anse La Roche - Grenada Tourism Authority</ref>
* Petite Carenage
* Hillsborough Beach
* Sandy Island Beach
* Sparrow Bay
* Black Sand Beach
* Tyrrel Bay<ref>Our Stories - Grenada Tourism Authority</ref>
* Sanchez Beach
== St. Andrew's ==
* Power Beach La Porterie
* Hope Beach
* Marquis Beach
* La Baye
* Telescope Beach
* Pearls Beach
== St. David ==
* La Sagesse Beach <ref>La Sagesse Beach - Grenada Tourism Authority</ref>
* David Beach (Davee)
* Petite Bacolet Bay
== St. George ==
* Grand Anse Beach<ref>Grand Anse Beach - Grenada Tourism Authority</ref>
* Grooms Beach<ref>Grooms Beach (Parc a Boeuf) - Grenada Tourism Authority</ref>
* Benji Bay Woburn
* Grand Mal Bay
* Magazine Beach
* Morne Rouge (BBC) Beach
* True Blue Bay
* Mount Pandy Beach
* Fort Jeudy Beach
* Black Bay Beach
* Portici Beach
* L'Anse Aux Epines Beach<ref>Lance Aux Epines Beach - Grenada Tourism Authority</ref>
* Pink Gin Beach
== St.Marks ==
* Duquesne Bay
== St Patrick ==
* Levera Beach
* Ratton's Beach
* Bathway Beach
* Petite Anse
* Antoine Beach
== St John ==
* Black Bay Beach<ref>Black Bay Beach, Grenada - Know BEFORE You Go</ref>
* Gouyave Beach<ref>Gouyave Beach, Grenada - Know BEFORE You Go</ref>
== Beaches on islands of the coast of Grenada ==
* Hog island beach
* Booby island beach
* Sandy island beach
* Sugar loaf beach
* Sandy island beach
* Green island beach
* White island beach
9ff5b78a03b0c1381367c0e8d7ffedf632732ebb
Origins of the names of places in Grenada
0
95
198
2024-11-26T03:03:18Z
104.245.95.82
0
Created page with "== St.George =="
wikitext
text/x-wiki
== St.George ==
b5d7998a0891ee24541f8790ca5f584f5c5ccac1
Waterfalls found in Grenada
0
94
195
2024-11-27T04:08:25Z
Kiki
34
Created page with "== St Georges == * Annadale Waterfall == ST. Andrew == * Paraclete Waterfall * Royal Mt. Carmel waterfall * Seven Sisters waterfall * Adelfi Falls * Honeymoon Falls == St Mark == * Concord Waterfall * Au Coin * Fountain bleu * Tufton Hall Waterfall"
wikitext
text/x-wiki
== St Georges ==
* Annadale Waterfall
== ST. Andrew ==
* Paraclete Waterfall
* Royal Mt. Carmel waterfall
* Seven Sisters waterfall
* Adelfi Falls
* Honeymoon Falls
== St Mark ==
* Concord Waterfall
* Au Coin
* Fountain bleu
* Tufton Hall Waterfall
42421175e5dcb57fde7f2e5a15566357bf81c8a2
196
195
2024-12-02T10:00:24Z
191.101.240.53
0
/* ST. Andrew */ added page links
wikitext
text/x-wiki
== St.George ==
* [[Annadale Waterfall]]
== St.Andrew ==
* [[Paraclete Waterfall]]
* [[Royal Mt. Carmel waterfall]]
* [[Seven Sisters waterfall]]
* [[Adelfi Falls]]
* [[Honeymoon Falls]]
== St.Mark ==
* [[Concord Waterfall]]
* [[Au Coin]]
* [[Fountain bleu]]
* [[Tufton Hall Waterfall]]
8638c3aac4b80adb49813258703a291c79b13b3b
Grenada
0
96
199
2024-12-06T02:46:20Z
104.245.95.84
0
Created page with " == Grenada == * === Pronunciation === <big>Grenada is pronounced as '''/ɡrɪˈneɪdə/''' (gri-NAY-da).[1]</big> === <big>Location</big> === <big>Grenada is a small island nation located in the Caribbean Sea. It is part of the Lesser Antilles and lies to the south of the main Caribbean islands. The country is situated at the southern end of the Windward Islands, between the Caribbean Sea to the west and the Atlantic Ocean to the east.</big><ref>Grenada Details - The..."
wikitext
text/x-wiki
== Grenada ==
*
=== Pronunciation ===
<big>Grenada is pronounced as '''/ɡrɪˈneɪdə/''' (gri-NAY-da).[1]</big>
=== <big>Location</big> ===
<big>Grenada is a small island nation located in the Caribbean Sea. It is part of the Lesser Antilles and lies to the south of the main Caribbean islands. The country is situated at the southern end of the Windward Islands, between the Caribbean Sea to the west and the Atlantic Ocean to the east.</big><ref>Grenada Details - The World Factbook</ref>
<big>'''· Coordinates''':</big>
* <big>Lat / Lon 12.11587°N, 61.68823°W</big><ref>https://maps.usgs.gov/map/#share=g-60fc860d893c2b6d40ad3d60a0d39336</ref>
<big>'''· Nearby Islands''': Grenada is located to the south of Saint Vincent and the Grenadines</big><ref>Saint Vincent and the Grenadines Details - The World Factbook</ref> <big>and to the north of Trinidad and Tobago.</big><ref>Trinidad and Tobago Details - The World Factbook</ref>
=== <big>Territories</big> ===
<big>Grenada has several smaller islands that are considered part of its territory. The major territories of Grenada include:</big>
<big>'''1. Grenada (Main Island)''': The largest and most populous island, home to the capital, St. George's.</big>
<big>'''2. Carriacou'''</big><ref>Carriacou | island, Grenada, West Indies | Britannica</ref><big>: The largest of the smaller islands, located to the northeast of Grenada, known for its beautiful beaches and traditional culture.</big>
<big>'''3. Petit Martinique''': A small island located southeast of Carriacou, known for its fishing community and calm lifestyle.</big>
=== <big>Population</big> ===
<big>As of the most recent estimates, Grenada has a population of approximately '''120,000''' people.</big>
=== <big>Size</big> ===
<big>The total land area of Grenada is about '''344 square kilometers''' (133 square miles), making it one of the smallest island nations in the Caribbean.</big>
----
== <big>Economy</big> ==
<big>Grenada's economy is mainly driven by agriculture, services, and tourism. The country benefits from a variety of natural resources and has a relatively stable economy within the Caribbean region.</big>
<big>'''· Agriculture''': Grenada is known as the "Island of Spice" due to its large production of '''nutmeg''', which is one of its main exports. Other agricultural products include cocoa, bananas, and citrus fruits.</big>
<big>'''· Tourism''': Tourism is a key component of Grenada's economy, with visitors attracted by the island's beautiful beaches, clear waters, and historical sites. The tourism sector contributes significantly to employment and foreign exchange.</big>
<big>'''· Services''': The services sector, including financial services and retail, also plays an important role in the island's economy.</big>
=== <big>Currency: The official currency is the East Caribbean dollar (XCD).</big> ===
----
== <big>Government</big> ==
<big>Grenada is a '''parliamentary democracy''' with a '''constitutional monarchy'''. The country is a member of the Commonwealth of Nations, and the British monarch is the head of state, represented by a Governor-General in Grenada.</big>
<big>'''· Head of State''': The monarch, currently '''King Charles III''', is represented by the '''Governor-General of Grenada'''.</big>
<big>'''· Prime Minister''': The Prime Minister is the head of government and holds executive power. As of 2024, the Prime Minister is '''Dickon Mitchell'''.</big>
<big>'''· Legislature''': Grenada has a '''bicameral parliament''', consisting of the '''Senate''' (appointed members) and the '''House of Representatives''' (elected members).</big>
=== <big>Political Parties: Major political parties include the New National Party (NNP) and the National Democratic Congress (NDC).</big> ===
----
== <big>Culture</big> ==
<big>Grenadian culture is a blend of African, European, and Caribbean influences, shaped by the country's colonial history, slavery, and independence. Some of the key cultural elements include:</big>
<big>'''· Music and Dance:''' Grenada has a rich musical heritage, particularly in '''Calypso''', '''Soca''', and '''Steelpan''' music. The island hosts several festivals, including '''Carnival''', which is celebrated in August and features vibrant parades, costumes, and music.</big>
<big>'''· Cuisine''': Grenadian cuisine features a combination of fresh seafood, local fruits, and spices. Traditional dishes include '''oil down''' (a stew made with salted meat, breadfruit, and vegetables), '''bake and shark''', and '''rum-based drinks'''.</big>
<big>'''· Language''': The official language is '''English''', though Grenadians also speak '''Grenadian Creole''', a French-based Creole language.</big>
<big>'''· Festivals''': Aside from Carnival, Grenada celebrates '''Spice Mas''', a festival showcasing the country's agricultural wealth, especially its nutmeg and spice industries.</big>
e6d2afdb31871b6b2f1025d9756978c83efe1602
200
199
2024-12-09T02:46:03Z
Kiki
34
wikitext
text/x-wiki
== Grenada ==
*
=== Pronunciation ===
<big>Grenada is pronounced as '''/ɡrɪˈneɪdə/''' (gri-NAY-da). [1]</big>
=== <big>Location</big> ===
<big>Grenada is a small island nation located in the Caribbean Sea. It is part of the Lesser Antilles and lies to the south of the main Caribbean islands. The country is situated at the southern end of the Windward Islands, between the Caribbean Sea to the west and the Atlantic Ocean to the east.</big><ref>Grenada Details - The World Factbook</ref>
<big>'''· Coordinates''':</big>
* <big>Lat / Lon 12.11587°N, 61.68823°W</big><ref>https://maps.usgs.gov/map/#share=g-60fc860d893c2b6d40ad3d60a0d39336</ref>
<big>'''· Nearby Islands''': Grenada is located to the south of Saint Vincent and the Grenadines</big><ref>Saint Vincent and the Grenadines Details - The World Factbook</ref> <big>and to the north of Trinidad and Tobago.</big><ref>Trinidad and Tobago Details - The World Factbook</ref>
=== <big>Territories</big> ===
<big>Grenada has several smaller islands that are considered part of its territory. The major territories of Grenada include:</big>
<big>'''1. Grenada (Main Island)''': The largest and most populous island, home to the capital, St. George's.</big>
<big>'''2. Carriacou'''</big><ref>Carriacou | island, Grenada, West Indies | Britannica</ref><big>: The largest of the smaller islands, located to the northeast of Grenada, known for its beautiful beaches and traditional culture.</big>
<big>'''3. Petit Martinique''': A small island located southeast of Carriacou, known for its fishing community and calm lifestyle.</big>
=== <big>Population</big> ===
<big>As of the most recent estimates, Grenada has a population of approximately '''120,000''' people.</big>
=== <big>Size</big> ===
<big>The total land area of Grenada is about '''344 square kilometers''' (133 square miles), making it one of the smallest island nations in the Caribbean.</big>
----
== <big>Economy</big> ==
<big>Grenada's economy is mainly driven by agriculture, services, and tourism. The country benefits from a variety of natural resources and has a relatively stable economy within the Caribbean region.</big>
<big>'''· Agriculture''': Grenada is known as the "Island of Spice" due to its large production of '''nutmeg''', which is one of its main exports. Other agricultural products include cocoa, bananas, and citrus fruits.</big>
<big>'''· Tourism''': Tourism is a key component of Grenada's economy, with visitors attracted by the island's beautiful beaches, clear waters, and historical sites. The tourism sector contributes significantly to employment and foreign exchange.</big>
<big>'''· Services''': The services sector, including financial services and retail, also plays an important role in the island's economy.</big>
=== <big>Currency: The official currency is the East Caribbean dollar (XCD).</big> ===
----
== <big>Government</big> ==
<big>Grenada is a '''parliamentary democracy''' with a '''constitutional monarchy'''. The country is a member of the Commonwealth of Nations, and the British monarch is the head of state, represented by a Governor-General in Grenada.</big>
<big>'''· Head of State''': The monarch, currently '''King Charles III''', is represented by the '''Governor-General of Grenada'''.</big>
<big>'''· Prime Minister''': The Prime Minister is the head of government and holds executive power. As of 2024, the Prime Minister is '''Dickon Mitchell'''.</big>
<big>'''· Legislature''': Grenada has a '''bicameral parliament''', consisting of the '''Senate''' (appointed members) and the '''House of Representatives''' (elected members).</big>
=== <big>Political Parties: Major political parties include the New National Party (NNP) and the National Democratic Congress (NDC).</big> ===
----
== <big>Culture</big> ==
<big>Grenadian culture is a blend of African, European, and Caribbean influences, shaped by the country's colonial history, slavery, and independence. Some of the key cultural elements include:</big>
<big>'''· Music and Dance:''' Grenada has a rich musical heritage, particularly in '''Calypso''', '''Soca''', and '''Steelpan''' music. The island hosts several festivals, including '''Carnival''', which is celebrated in August and features vibrant parades, costumes, and music.</big>
<big>'''· Cuisine''': Grenadian cuisine features a combination of fresh seafood, local fruits, and spices. Traditional dishes include '''oil down''' (a stew made with salted meat, breadfruit, and vegetables), '''bake and shark''', and '''rum-based drinks'''.</big>
<big>'''· Language''': The official language is '''English''', though Grenadians also speak '''Grenadian Creole''', a French-based Creole language.</big>
<big>'''· Festivals''': Aside from Carnival, Grenada celebrates '''Spice Mas''', a festival showcasing the country's agricultural wealth, especially its nutmeg and spice industries.</big>
d30c77a83a3fa81e3d015fd130c6558e4e56a570
Grenada
0
96
201
200
2024-12-09T02:53:27Z
Kiki
34
wikitext
text/x-wiki
== Grenada ==
*
=== Pronunciation ===
<big>Grenada is pronounced as '''/ɡrɪˈneɪdə/''' (gri-NAY-da). [1]</big>
=== <big>Location</big> ===
<big>Grenada is a small island nation located in the Caribbean Sea. It is part of the Lesser Antilles and lies to the south of the main Caribbean islands. The country is situated at the southern end of the Windward Islands, between the Caribbean Sea to the west and the Atlantic Ocean to the east.</big><ref>Grenada Details - The World Factbook</ref>
<big>'''· Coordinates''':</big>
* <big>Lat / Lon 12.11587°N, 61.68823°W</big><ref>https://maps.usgs.gov/map/#share=g-60fc860d893c2b6d40ad3d60a0d39336</ref>
<big>'''· Nearby Islands''': Grenada is located to the south of Saint Vincent and the Grenadines</big><ref>Saint Vincent and the Grenadines Details - The World Factbook</ref> <big>and to the north of Trinidad and Tobago.</big><ref>Trinidad and Tobago Details - The World Factbook</ref>
=== <big>Territories</big> ===
<big>Grenada has several smaller islands that are considered part of its territory. The major territories of Grenada include:</big>
<big>'''1. Grenada (Main Island)''': The largest and most populous island, home to the capital, St. George's.</big>
<big>'''2. Carriacou'''</big><ref>Carriacou | island, Grenada, West Indies | Britannica</ref><big>: The largest of the smaller islands, located to the northeast of Grenada, known for its beautiful beaches and traditional culture.</big>
<big>'''3. Petit Martinique''': A small island located southeast of Carriacou, known for its fishing community and calm lifestyle.</big>
=== <big>Population</big> ===
<big>As of the most recent estimates, Grenada has a population of approximately '''114,621''' people.</big>
=== <big>Size</big> ===
<big>The total land area of Grenada is about '''344 square kilometers''' (133 square miles)</big><ref>Grenada - The World Factbook</ref>
----
== <big>Economy</big> ==
<big>Grenada's economy is mainly driven by agriculture, services, and tourism. The country benefits from a variety of natural resources and has a relatively stable economy within the Caribbean region.</big>
<big>'''· Agriculture''': Grenada is known as the "Island of Spice" due to its large production of '''nutmeg''', which is one of its main exports. Other agricultural products include cocoa, bananas, and citrus fruits.</big>
<big>'''· Tourism''': Tourism is a key component of Grenada's economy, with visitors attracted by the island's beautiful beaches, clear waters, and historical sites. The tourism sector contributes significantly to employment and foreign exchange.</big>
<big>'''· Services''': The services sector, including financial services and retail, also plays an important role in the island's economy.</big>
=== <big>Currency: The official currency is the East Caribbean dollar (XCD).</big> ===
----
== <big>Government</big> ==
<big>Grenada is a '''parliamentary democracy''' with a '''constitutional monarchy'''. The country is a member of the Commonwealth of Nations, and the British monarch is the head of state, represented by a Governor-General in Grenada.</big>
<big>'''· Head of State''': The monarch, currently '''King Charles III''', is represented by the '''Governor-General of Grenada'''.</big>
<big>'''· Prime Minister''': The Prime Minister is the head of government and holds executive power. As of 2024, the Prime Minister is '''Dickon Mitchell'''.</big>
<big>'''· Legislature''': Grenada has a '''bicameral parliament''', consisting of the '''Senate''' (appointed members) and the '''House of Representatives''' (elected members).</big>
=== <big>Political Parties: Major political parties include the New National Party (NNP) and the National Democratic Congress (NDC).</big> ===
----
== <big>Culture</big> ==
<big>Grenadian culture is a blend of African, European, and Caribbean influences, shaped by the country's colonial history, slavery, and independence. Some of the key cultural elements include:</big>
<big>'''· Music and Dance:''' Grenada has a rich musical heritage, particularly in '''Calypso''', '''Soca''', and '''Steelpan''' music. The island hosts several festivals, including '''Carnival''', which is celebrated in August and features vibrant parades, costumes, and music.</big>
<big>'''· Cuisine''': Grenadian cuisine features a combination of fresh seafood, local fruits, and spices. Traditional dishes include '''oil down''' (a stew made with salted meat, breadfruit, and vegetables), '''bake and shark''', and '''rum-based drinks'''.</big>
<big>'''· Language''': The official language is '''English''', though Grenadians also speak '''Grenadian Creole''', a French-based Creole language.</big>
<big>'''· Festivals''': Aside from Carnival, Grenada celebrates '''Spice Mas''', a festival showcasing the country's agricultural wealth, especially its nutmeg and spice industries.</big>
4263b776369000e178a420e4e3da90167fa1fbca
217
201
2024-12-09T03:51:00Z
104.245.95.84
0
wikitext
text/x-wiki
== Grenada ==
*
=== Pronunciation ===
<big>Grenada is pronounced as '''/ɡrɪˈneɪdə/''' (gri-NAY-da). [1]</big>
=== <big>Location</big> ===
<big>Grenada is a small island nation located in the Caribbean Sea. It is part of the Lesser Antilles and lies to the south of the main Caribbean islands. The country is situated at the southern end of the Windward Islands, between the Caribbean Sea to the west and the Atlantic Ocean to the east.</big><ref>Grenada Details - The World Factbook</ref>
<big>'''· Coordinates''':</big>
* <big>Lat / Lon 12.11587°N, 61.68823°W</big><ref>https://maps.usgs.gov/map/#share=g-60fc860d893c2b6d40ad3d60a0d39336</ref>
<big>'''· Nearby Islands''': Grenada is located to the south of Saint Vincent and the Grenadines</big><ref>Saint Vincent and the Grenadines Details - The World Factbook</ref> <big>and to the north of Trinidad and Tobago.</big><ref>Trinidad and Tobago Details - The World Factbook</ref>
=== <big>Territories</big> ===
<big>Grenada has several smaller islands that are considered part of its territory. The major territories of Grenada include:</big>
<big>'''1. Grenada (Main Island)''': The largest and most populous island, home to the capital, St. George's.</big>
<big>'''2. Carriacou'''</big><ref>Carriacou | island, Grenada, West Indies | Britannica</ref><big>: The largest of the smaller islands, located to the northeast of Grenada, known for its beautiful beaches and traditional culture.</big>
<big>'''3. Petit Martinique''': A small island located southeast of Carriacou, known for its fishing community and calm lifestyle.</big>
=== <big>Population</big> ===
<big>As of the most recent estimates, Grenada has a population of approximately '''114,621''' people.</big><ref>Grenada - The World Factbook</ref>
=== <big>Size</big> ===
<big>The total land area of Grenada is about '''344 square kilometers''' (133 square miles)</big><ref>Grenada - The World Factbook</ref>
----
== <big>Economy</big> ==
<big>Grenada's economy is mainly driven by agriculture, services, and tourism. The country benefits from a variety of natural resources and has a relatively stable economy within the Caribbean region.</big>
<big>'''· Agriculture''': Grenada is known as the "Island of Spice" due to its large production of '''nutmeg''', which is one of its main exports. Other agricultural products include cocoa, bananas, and citrus fruits.</big>
<big>'''· Tourism''': Tourism is a key component of Grenada's economy, with visitors attracted by the island's beautiful beaches, clear waters, and historical sites. The tourism sector contributes significantly to employment and foreign exchange.</big>
<big>'''· Services''': The services sector, including financial services and retail, also plays an important role in the island's economy.</big>
=== <big>Currency: The official currency is the East Caribbean dollar (XCD).</big> ===
----
== <big>Government</big> ==
<big>Grenada is a '''parliamentary democracy''' with a '''constitutional monarchy'''. The country is a member of the Commonwealth of Nations, and the British monarch is the head of state, represented by a Governor-General in Grenada.</big>
<big>'''· Head of State''': The monarch, currently '''King Charles III''', is represented by the '''Governor-General of Grenada'''.</big>
<big>'''· Prime Minister''': The Prime Minister is the head of government and holds executive power. As of 2024, the Prime Minister is '''Dickon Mitchell'''.</big>
<big>'''· Legislature''': Grenada has a '''bicameral parliament''', consisting of the '''Senate''' (appointed members) and the '''House of Representatives''' (elected members).</big>
=== <big>Political Parties: Major political parties include the New National Party (NNP) and the National Democratic Congress (NDC).</big> ===
----
== <big>Culture</big> ==
<big>Grenadian culture is a blend of African, European, and Caribbean influences, shaped by the country's colonial history, slavery, and independence. Some of the key cultural elements include:</big>
<big>'''· Music and Dance:''' Grenada has a rich musical heritage, particularly in '''Calypso''', '''Soca''', and '''Steelpan''' music. The island hosts several festivals, including '''Carnival''', which is celebrated in August and features vibrant parades, costumes, and music.</big>
<big>'''· Cuisine''': Grenadian cuisine features a combination of fresh seafood, local fruits, and spices. Traditional dishes include '''oil down''' (a stew made with salted meat, breadfruit, and vegetables), '''bake and shark''', and '''rum-based drinks'''.</big>
<big>'''· Language''': The official language is '''English''', though Grenadians also speak '''Grenadian Creole''', a French-based Creole language.</big>
<big>'''· Festivals''': Aside from Carnival, Grenada celebrates '''Spice Mas''', a festival showcasing the country's agricultural wealth, especially its nutmeg and spice industries.</big>
d21e4bf7a842f43724395f1409dee6cee830d7ff
Lakes found in Grenada
0
97
202
2024-12-16T23:25:52Z
Kiki
34
Created page with "== Grand Etang lake == Located in the heart of Grand Etang national park, 9 miles southwest of Grenville and 11 miles north of St. Georges , Lake Antoine is a picturesque crater lake that was formed within the caldera of an extinct volcano which sits at an altitude of 1,740 feet above sea level. The lush vegetation provides shelter for a wide variety of animals, particularly for the island’s many species of birds. In addition, Grand Etang is populated by plenty of frog..."
wikitext
text/x-wiki
== Grand Etang lake ==
Located in the heart of Grand Etang national park, 9 miles southwest of Grenville and 11 miles north of St. Georges , Lake Antoine is a picturesque crater lake that was formed within the caldera of an extinct volcano which sits at an altitude of 1,740 feet above sea level. The lush vegetation provides shelter for a wide variety of animals, particularly for the island’s many species of birds. In addition, Grand Etang is populated by plenty of frogs and lizards, as well as playing host to opossums, armadillos, mongoose, and the Mona monkey.<ref>Grand Etang National Park & Forest Reserve - Grenada Tourism Authority</ref>
== Lake Antoine ==
Like Grand Etang, Lake Antoine sits in the crater of a long extinct volcano, covering about 16 acres. Located 6 miles north of the Eastern town of Grenville, the journey to find this lake is well worth it as you get to admire its beauty, surrounding unspoilt nature and perfect shape from a hillside vantage point. The shallow lake is home to a myriad of wildlife and is excellent for bird watchers as it attracts species such as snail kites, fulvous whistling ducks, large billed seed-finches, gray kingbirds and limpkins. <ref>Lake Antoine - Grenada Tourism Authority</ref>
9b05fe1d2e265182133f55ece9cccc6267c7accc
Grenada's national dish
0
98
203
2024-12-17T00:33:23Z
Kiki
34
Created page with " ==== Ingredients: ==== * '''2 lbs. salt fish''' (soaked and deboned) * '''2 lbs. chicken''' (cut into pieces, optional) * '''2 lbs. pig tail''' (boiled to remove excess salt) (optional) * '''3 cups coconut milk''' (freshly squeezed) * '''2 medium whole breadfruit''' (peeled, guts removed) * '''2 hands of green bananas''' (peeled) * '''2 lbs. counter flour''' (for dumplings) * '''2 bundles of callaloo leaves''' (finely chopped) * '''1 carrot''' (peeled and chopped) * ''..."
wikitext
text/x-wiki
==== Ingredients: ====
* '''2 lbs. salt fish''' (soaked and deboned)
* '''2 lbs. chicken''' (cut into pieces, optional)
* '''2 lbs. pig tail''' (boiled to remove excess salt) (optional)
* '''3 cups coconut milk''' (freshly squeezed)
* '''2 medium whole breadfruit''' (peeled, guts removed)
* '''2 hands of green bananas''' (peeled)
* '''2 lbs. counter flour''' (for dumplings)
* '''2 bundles of callaloo leaves''' (finely chopped)
* '''1 carrot''' (peeled and chopped)
* '''1 onion''' (chopped)
* '''3 cloves garlic''' (minced)
* '''2 sprigs thyme'''
* '''1 tsp turmeric''' (optional, for color)
* '''Salt to taste'''
----
==== Instructions: ====
# '''Prepare the Ingredients:'''
#* Soak the salt fish overnight and remove any bones.
#* Peel and chop the breadfruit, carrots, and green bananas.
#* Season the chicken pieces with a blend of green seasonings and salt.
#* In a separate bowl, combine the counter flour, salt, and water to form a firm dough for dumplings. Set aside.
# '''Combine Ingredients in the Pot:'''
#* Layer the pot by adding the breadfruit and green bananas first, packing them neatly along the natural curve of the pot.
#* Place the boiled pigtail and seasoned chicken in the center of the pot.
# '''Add Liquids & Spices:'''
#* Pour in the freshly squeezed coconut milk and turmeric. Be careful not to fill the pot to the top, leaving space for expansion during cooking. Bring it to a boil.
# '''Add Dumplings:'''
#* Carefully add the prepared dumplings to the boiling pot.
# '''Add Callaloo & Vegetables:'''
#* Add the chopped callaloo leaves, carrots, onion, garlic, and thyme.
# '''Season and Simmer:'''
#* Season with salt to taste. Allow everything to simmer for 40-50 minutes, or until the vegetables and breadfruit are tender, and the liquid has reduced. '''DO NOT STIR !!'''
# '''Serve:'''
bc105596b843ae41989a798b2ff1c41d63cea62f
204
203
2024-12-17T01:46:21Z
Kiki
34
wikitext
text/x-wiki
==== '''Oil Down Recipe''' ====
==== Ingredients: ====
* '''2 lbs. salt fish''' (soaked and deboned)
* '''2 lbs. chicken''' (cut into pieces, optional)
* '''2 lbs. pig tail''' (boiled to remove excess salt) (optional)
* '''3 cups coconut milk''' (freshly squeezed)
* '''2 medium whole breadfruit''' (peeled, guts removed)
* '''2 hands of green bananas''' (peeled)
* '''2 lbs. counter flour''' (for dumplings)
* '''2 bundles of callaloo leaves''' (finely chopped)
* '''1 carrot''' (peeled and chopped)
* '''1 onion''' (chopped)
* '''3 cloves garlic''' (minced)
* '''2 sprigs thyme'''
* '''1 tsp turmeric''' (optional, for color)
* '''Salt to taste'''
----
==== Instructions: ====
# '''Prepare the Ingredients:'''
#* Soak the salt fish overnight and remove any bones.
#* Peel and chop the breadfruit, carrots, and green bananas.
#* Season the chicken pieces with a blend of green seasonings and salt.
#* In a separate bowl, combine the counter flour, salt, and water to form a firm dough for dumplings. Set aside.
# '''Combine Ingredients in the Pot:'''
#* Layer the pot by adding the breadfruit and green bananas first, packing them neatly along the natural curve of the pot.
#* Place the boiled pigtail and seasoned chicken in the center of the pot.
# '''Add Liquids & Spices:'''
#* Pour in the freshly squeezed coconut milk and turmeric. Be careful not to fill the pot to the top, leaving space for expansion during cooking. Bring it to a boil.
# '''Add Dumplings:'''
#* Carefully add the prepared dumplings to the boiling pot.
# '''Add Callaloo & Vegetables:'''
#* Add the chopped callaloo leaves, carrots, onion, garlic, and thyme.
# '''Season and Simmer:'''
#* Season with salt to taste. Allow everything to simmer for 40-50 minutes, or until the vegetables and breadfruit are tender, and the liquid has reduced. '''DO NOT STIR !!'''
# '''Serve:'''
aee6c500f76b69ac283c44b57cd416ad21b69062
207
204
2024-12-28T16:48:38Z
Kiki
34
wikitext
text/x-wiki
[[File:Oil down.jpg|thumb|A picture of Grenada's national dish, Oil Down.]]
==== '''Oil Down Recipe''' ====
==== Ingredients: ====
* '''2 lbs. salt fish''' (soaked and deboned)
* '''2 lbs. chicken''' (cut into pieces, optional)
* '''2 lbs. pig tail''' (boiled to remove excess salt) (optional)
* '''3 cups coconut milk''' (freshly squeezed)
* '''2 medium whole breadfruit''' (peeled, guts removed)
* '''2 hands of green bananas''' (peeled)
* '''2 lbs. counter flour''' (for dumplings)
* '''2 bundles of callaloo leaves''' (finely chopped)
* '''1 carrot''' (peeled and chopped)
* '''1 onion''' (chopped)
* '''3 cloves garlic''' (minced)
* '''2 sprigs thyme'''
* '''1 tsp turmeric''' (optional, for color)
* '''Salt to taste'''
----
==== Instructions: ====
# '''Prepare the Ingredients:'''
#* Soak the salt fish overnight and remove any bones.
#* Peel and chop the breadfruit, carrots, and green bananas.
#* Season the chicken pieces with a blend of green seasonings and salt.
#* In a separate bowl, combine the counter flour, salt, and water to form a firm dough for dumplings. Set aside.
# '''Combine Ingredients in the Pot:'''
#* Layer the pot by adding the breadfruit and green bananas first, packing them neatly along the natural curve of the pot.
#* Place the boiled pigtail and seasoned chicken in the center of the pot.
# '''Add Liquids & Spices:'''
#* Pour in the freshly squeezed coconut milk and turmeric. Be careful not to fill the pot to the top, leaving space for expansion during cooking. Bring it to a boil.
# '''Add Dumplings:'''
#* Carefully add the prepared dumplings to the boiling pot.
# '''Add Callaloo & Vegetables:'''
#* Add the chopped callaloo leaves, carrots, onion, garlic, and thyme.
# '''Season and Simmer:'''
#* Season with salt to taste. Allow everything to simmer for 40-50 minutes, or until the vegetables and breadfruit are tender, and the liquid has reduced. '''DO NOT STIR !!'''
# '''Serve:'''
f1447f27fb7befb3f23bf20b0c6bb4cae6ebeb0b
Origins of the names of places in Grenada
0
95
205
198
2024-12-17T03:32:38Z
Kiki
34
wikitext
text/x-wiki
== St. George ==
The capital of Grenada was named after the patron saint of England (King George iii) in 1764<ref>St George - Grenada National Trust</ref>
== St. David ==
The third largest parish of Grenada was named after the patron saint of Wales.<ref>St David - Grenada National Trust</ref>
== St. Andrew ==
The largest of the parishes, is named after Saint Andrew ,the patron saint of Scotland
== St John ==
The parish of St. John is named after John the Baptiste by the French during the 17th century.
== St. Marks ==
5d04c706f99db8ac6ab1819f9fb8ed07370ee797
File:Oil down.jpg
6
99
206
2024-12-28T16:46:56Z
Kiki
34
wikitext
text/x-wiki
Grenada's national dish, Oil down.
a751d0f24cbaddf906586038f8028b312bf6bd88
Waterfalls found in Grenada
0
94
208
196
2024-12-28T17:14:08Z
Kiki
34
wikitext
text/x-wiki
== St.George ==
* [[Annadale Waterfall]]
== St.Andrew ==
* [[Paraclete Waterfall]]
* [[Royal Mt. Carmel waterfall]] (includes 2 waterfalls)
* [[Seven Sisters waterfall]] (includes 7 waterfalls)
* [[Adelfi Falls]]
* [[Honeymoon Falls]]
== St.Mark ==
* [[Concord Waterfall]]
* [[Au Coin]]
* [[Fountain bleu]]
* [[Tufton Hall Waterfall]]
4aefe2dfba50b8e7bc31542f7f2e5632f043bfe6
209
208
2024-12-28T17:14:56Z
Kiki
34
wikitext
text/x-wiki
== St.George ==
* [[Annadale Waterfall]]
== St.Andrew ==
* [[Paraclete Waterfall]]
* [[Royal Mt. Carmel waterfall]]
* [[Seven Sisters waterfall]] (includes 7 waterfalls)
* [[Adelfi Falls]]
* [[Honeymoon Falls]]
* Golden falls
== St.Mark ==
* [[Concord Waterfall]]
* [[Au Coin]]
* [[Fountain bleu]]
* [[Tufton Hall Waterfall]]
6b2a316882cf4ac8dac62084570cfe8cb54e2209
216
209
2024-12-31T18:59:06Z
Kiki
34
wikitext
text/x-wiki
== St.George ==
* [[Annadale Waterfall]]
== St.Andrew ==
* [[Paraclete Waterfall]]
* [[Royal Mt. Carmel waterfall]]
* [[Seven Sisters waterfall]] (includes 7 waterfalls)
* [[Adelfi Falls]]
* [[Honeymoon Falls]]
* Golden falls
== St.Mark ==
* [[Concord Waterfall]]
* [[Au Coin]]
* [[Fountain bleu]][[File:Concord falls.jpg|thumb|318x318px|Concord falls Grenada]]
* [[Tufton Hall Waterfall]]
7eb8406cc54a66952f1eb9270b9d1b18dc9c93f1
221
216
2025-01-04T03:13:31Z
Kiki
34
wikitext
text/x-wiki
== St.George ==
* [[Annadale Waterfall]]
* [[File:Shodoo waterfall.jpg|thumb|526x526px|The beautiful Shodoo waterfall, Grenada, W.I]]Shodoo waterfall
== St.Andrew ==
* [[Paraclete Waterfall]]
* [[Royal Mt. Carmel waterfall]]
* [[Seven Sisters waterfall]] (includes 7 waterfalls)
* [[Adelfi Falls]]
* [[Honeymoon Falls]]
* Golden falls
== St.Mark ==
* [[Concord Waterfall]]
* [[Au Coin]]
* [[Fountain bleu]][[File:Concord falls.jpg|thumb|318x318px|Concord falls Grenada]]
* [[Tufton Hall Waterfall]]
f07e9153638274b3de984782162d11533455b2a8
File:Concord falls.jpg
6
102
212
2024-12-31T17:45:09Z
Kiki
34
wikitext
text/x-wiki
Concord falls is a stunning waterfall located in the lush,green hills of Grenada.
c3d5ed80d53b9720b5f802e24551f3c7d5355b7d
Main Page
0
1
218
1
2025-01-02T21:13:46Z
Kiki
34
wikitext
text/x-wiki
<strong>Media Wiki has been installed.</strong>
Consult the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents User's Guide] for information on using the wiki software.
== Getting started ==
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]
* [[mediawikiwiki:Special:MyLanguage/Manual:FAQ|Media Wiki FAQ]]
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Media Wiki release mailing list]
* [[mediawikiwiki:Special:MyLanguage/Localisation#Translation_resources|Localise Media Wiki for your language]]
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]
0ea66f2f2a4470f165c78e5f761c15c43d1a3beb
Grenada Public Holidays 2025
0
103
219
2025-01-03T23:06:09Z
Wikiricky
1
Created page
wikitext
text/x-wiki
List of public holidays 2025<ref>https://www.gov.gd/index.php/component/edocman/grenadas-public-holidays-2025/viewdocument/1386</ref>
* January 1: [[New Year's Day]]
* February 7: [[Independence day]]
* April 18: [[Good Friday]]
* April 21: [[Easter Monday]]
* May 1: [[Labour Day]]
* June 9: [[Whit Monday]]
* June 19: [[Corpus Christi]]
* August 1: [[Emancipation Day Observance]]
* August 11: [[Carnival Monday]]
* August 12: [[Carnival Tuesday]]
* October 19: [[National Hero's Day]] ( October 20th will a holiday)<ref>When a Bank holiday falls on a Sunday, the Monday immediately following shall be observed. (CHAPTER 25, BANK HOLIDAYS ACT -Schedule - BANK HOLIDAYS ACT).https://grenadaparliament.gd/storage/2021/08/S.R.O.-16-of-2016-Bank-Holiday.pdf</ref>
* October 25: [[Thanksgiving Day]]
* December 25: [[Christmas Day]]
* December 26: [[Boxing Day]]
97fb38e4946e8ac99688e13b38b9f54eb7db34c4
File:Shodoo waterfall.jpg
6
104
220
2025-01-04T03:10:44Z
Kiki
34
wikitext
text/x-wiki
Shodoo waterfall, located at Willis, St. Georges, Grenada
8feb2d95f693292f97ef0c3e55d21b0a93688879
Unofficial Holidays celebrated in Grenada
0
105
222
2025-01-04T21:14:22Z
Kiki
34
Created page with "== Saraka == '''Saraka''' is a thanksgiving feast passed down from African ancestors, where communities share traditional foods cooked over firewood and served on b'''luggoe''' or banana leaves. It features drumming, dancing, and offerings of flowers and rum. Saraka is held yearly: it is celebrated on the Friday before Ash Wednesday at '''La Poterie''', St. Andrew, and the Friday after Easter at '''River Sallee''', St. Patrick. <ref>Saraca - Grenada National Trust</ref>..."
wikitext
text/x-wiki
== Saraka ==
'''Saraka''' is a thanksgiving feast passed down from African ancestors, where communities share traditional foods cooked over firewood and served on b'''luggoe''' or banana leaves. It features drumming, dancing, and offerings of flowers and rum. Saraka is held yearly: it is celebrated on the Friday before Ash Wednesday at '''La Poterie''', St. Andrew, and the Friday after Easter at '''River Sallee''', St. Patrick. <ref>Saraca - Grenada National Trust</ref>
== Guy Fawkes Day ==
Guy Fawkes day is an old English tradition that is celebrated annually in Grenada, to commemorate the failed gun powder plot of 1605 .Guy Fawkes is usually held at Morne Jaloux St.Georges.
== Armistice Day ==
'''Armistice Day''' is a solemn occasion to remember the end of World War I and to honor those who sacrificed their lives during the conflict. It is marked by memorial services, moments of silence, and the laying of wreaths at war memorials. It is a day used commemorated the armistice signed in 1918, ending the devastating war. Grenadians are usually seen wearing poppies around this time and it is celebrated on November 11th annually
== Fishermans Birthday ==
In '''Grenada''', '''Fisherman's Birthday''' is celebrated on '''June 29th''' every year. This day is dedicated to honoring and celebrating the island's '''fishing community''' and the important role that fishermen play in Grenada's culture and economy.
=== Key Features of Fisherman's Birthday: ===
* '''Religious Significance''': The day often has a '''religious''' aspect, as many fishermen and their families attend church services to give thanks for the year's work and to seek blessings for future fishing endeavors.
* '''Community Celebrations''': Fisherman's Birthday is celebrated with '''festivals''', '''beach parties''', and '''community events'''. The fishing communities come together to celebrate their culture, heritage, and the vital role fishing plays in Grenadian life.
* '''Traditional Food and Drink''': Local delicacies like '''fish''' dishes and other seafood are featured, and the event is also an occasion to enjoy traditional music, dancing, and community gatherings.<ref>FISHERMANS’ BIRTHDAY IS ON | Grenada Broadcasting Network</ref>
== The Carriacou Maroon and Stringband Festival ==
===== The Carriacou Maroon and String Band Festival is the result of the merging of the African Maroon festival and String Band music into one unique celebration, held annually at the end of April. The festival honors the Maroons who escaped slavery and built their own communities while preserving African culture and heritage. It also focuses on remembering the ancestors and giving thanks for a good harvest. Over the course of three days, the festival features String Band music, Quadrille dancing, local foods, the beating of the big drums, and the wearing of traditional attire. =====
8025e36d8e7fce69974b50dc328c22cbf9b5ea94
223
222
2025-01-07T22:46:18Z
Kiki
34
wikitext
text/x-wiki
== Saraka ==
'''Saraka''' is a thanksgiving feast passed down from African ancestors, where communities share traditional foods cooked over firewood and served on b'''luggoe''' or banana leaves. It features drumming, dancing, and offerings of flowers and rum. Saraka is held yearly: it is celebrated on the Friday before Ash Wednesday at '''La Poterie''', St. Andrew, and the Friday after Easter at '''River Sallee''', St. Patrick. <ref>Saraca - Grenada National Trust</ref>
== Guy Fawkes Day ==
Guy Fawkes day is an old English tradition that is celebrated annually in Grenada, to commemorate the failed gun powder plot of 1605 .Guy Fawkes is usually held at Morne Jaloux St.Georges.
== Armistice Day ==
'''Armistice Day''' is a solemn occasion to remember the end of World War I and to honor those who sacrificed their lives during the conflict. It is marked by memorial services, moments of silence, and the laying of wreaths at war memorials. It is a day used commemorated the armistice signed in 1918, ending the devastating war. Grenadians are usually seen wearing poppies around this time and it is celebrated on November 11th annually
== Fishermans Birthday ==
In '''Grenada''', '''Fisherman's Birthday''' is celebrated on '''June 29th''' every year. This day is dedicated to honoring and celebrating the island's '''fishing community''' and the important role that fishermen play in Grenada's culture and economy.
=== Key Features of Fisherman's Birthday: ===
* '''Religious Significance''': The day often has a '''religious''' aspect, as many fishermen and their families attend church services to give thanks for the year's work and to seek blessings for future fishing endeavors.
* '''Community Celebrations''': Fisherman's Birthday is celebrated with '''festivals''', '''beach parties''', and '''community events'''. The fishing communities come together to celebrate their culture, heritage, and the vital role fishing plays in Grenadian life.
* '''Traditional Food and Drink''': Local delicacies like '''fish''' dishes and other seafood are featured, and the event is also an occasion to enjoy traditional music, dancing, and community gatherings.<ref>FISHERMANS’ BIRTHDAY IS ON | Grenada Broadcasting Network</ref>
== The Carriacou Maroon and Stringband Festival ==
===== The Carriacou Maroon and String Band Festival is the result of the merging of the African Maroon festival and String Band music into one unique celebration, held annually at the end of April. The festival honors the Maroons who escaped slavery and built their own communities while preserving African culture and heritage. It also focuses on remembering the ancestors and giving thanks for a good harvest. Over the course of three days, the festival features String Band music, Quadrille dancing, local foods, the beating of the big drums, and the wearing of traditional attire. =====
== Carriacou Carnival ==
Carriacou Carnival, also known as “Kayak Mas,” is a celebration held on the sister island of Carriacou in February during the pre-Lenten season. Kayak Mas offers an authentic cultural experience with a unique twist. The carnival blends elements of Carriacou’s African, French, and English heritage, which are represented in the music, street celebrations, masquerade bands, food, colors, and splendor.<ref>Carriacou Carnival - Grenada Tourism Authority</ref>
54b05933332892bfd40fa90acb16c7e846827112
231
223
2025-01-20T09:43:51Z
Wikiricky
1
/* The Carriacou Maroon and Stringband Festival */ fixed bold text
wikitext
text/x-wiki
== Saraka ==
'''Saraka''' is a thanksgiving feast passed down from African ancestors, where communities share traditional foods cooked over firewood and served on b'''luggoe''' or banana leaves. It features drumming, dancing, and offerings of flowers and rum. Saraka is held yearly: it is celebrated on the Friday before Ash Wednesday at '''La Poterie''', St. Andrew, and the Friday after Easter at '''River Sallee''', St. Patrick. <ref>Saraca - Grenada National Trust</ref>
== Guy Fawkes Day ==
Guy Fawkes day is an old English tradition that is celebrated annually in Grenada, to commemorate the failed gun powder plot of 1605 .Guy Fawkes is usually held at Morne Jaloux St.Georges.
== Armistice Day ==
'''Armistice Day''' is a solemn occasion to remember the end of World War I and to honor those who sacrificed their lives during the conflict. It is marked by memorial services, moments of silence, and the laying of wreaths at war memorials. It is a day used commemorated the armistice signed in 1918, ending the devastating war. Grenadians are usually seen wearing poppies around this time and it is celebrated on November 11th annually
== Fishermans Birthday ==
In '''Grenada''', '''Fisherman's Birthday''' is celebrated on '''June 29th''' every year. This day is dedicated to honoring and celebrating the island's '''fishing community''' and the important role that fishermen play in Grenada's culture and economy.
=== Key Features of Fisherman's Birthday: ===
* '''Religious Significance''': The day often has a '''religious''' aspect, as many fishermen and their families attend church services to give thanks for the year's work and to seek blessings for future fishing endeavors.
* '''Community Celebrations''': Fisherman's Birthday is celebrated with '''festivals''', '''beach parties''', and '''community events'''. The fishing communities come together to celebrate their culture, heritage, and the vital role fishing plays in Grenadian life.
* '''Traditional Food and Drink''': Local delicacies like '''fish''' dishes and other seafood are featured, and the event is also an occasion to enjoy traditional music, dancing, and community gatherings.<ref>FISHERMANS’ BIRTHDAY IS ON | Grenada Broadcasting Network</ref>
== The Carriacou Maroon and Stringband Festival ==
The Carriacou Maroon and String Band Festival is the result of the merging of the African Maroon festival and String Band music into one unique celebration, held annually at the end of April. The festival honors the Maroons who escaped slavery and built their own communities while preserving African culture and heritage. It also focuses on remembering the ancestors and giving thanks for a good harvest. Over the course of three days, the festival features String Band music, Quadrille dancing, local foods, the beating of the big drums, and the wearing of traditional attire.
== Carriacou Carnival ==
Carriacou Carnival, also known as “Kayak Mas,” is a celebration held on the sister island of Carriacou in February during the pre-Lenten season. Kayak Mas offers an authentic cultural experience with a unique twist. The carnival blends elements of Carriacou’s African, French, and English heritage, which are represented in the music, street celebrations, masquerade bands, food, colors, and splendor.<ref>Carriacou Carnival - Grenada Tourism Authority</ref>
b51380b343465df9d7360ffe584dff72b4298ab7
Places in Grenada with french names
0
106
224
2025-01-14T01:43:06Z
Kiki
34
Created page with "== French name Meaning == * Grand anse Big bay * '''L'Anse Aux Épines Bay of thorns''' * Morne Rouge Red hill * Beausejour Beautiful view * Frequente..."
wikitext
text/x-wiki
== French name Meaning ==
* Grand anse Big bay
* '''L'Anse Aux Épines Bay of thorns'''
* Morne Rouge Red hill
* Beausejour Beautiful view
* Frequente Frequented
* Grand mal Big evil
* La Mode Fashion
* Mardi Gra Fat Tuesday
* Mont tout All mountain
* Apretout After all
* Anse la Roche ( Carriacou) Rock bay
* Beaulieu Beautiful place
* Belle isles Beautiful island
* Belmont Beautiful mount
* Bonaire Good air
* Celeste Celestial
* Corbeau Raven
* Crochu Hooked, crooked
* Duquesne "from the Oak"
* Durmont Hard mountain
* Fontainbleu falls After the town of Fontainebleau, south of Paris
* Gouyave Guava
* Grand Bras Long arms
* Grand Roy Great king
* Gros Point Big point
* La Baye The bay
* la Filette The little girl
* La Fortune Fortune
* La Mode Fashion
* La Poterie The potter's
* La Sagesse bay Wisdom bay
* La Tante The aunt
* La Borie An old shepherd hut
* Marigot The swamp
* Marquis Marquee
* Mirabeau A place where you have a large view
* Mon Plaisir My pleasure
* Montreuil numerous placenames in France
Morne délice : delightful mountain
Morne Docteur : doctor mount
Morne Fendue : cracked mountain
Morne jaloux : jealous mountain
Morne Longue : long mountain
Morne rouge : red mountain
Morne Tranquille : Quiet mountain
Noelville : Christmastown
Nonpareil : without equal
Palmiste : palm tree
Pecher : peach tree
perdmontemps : wastes my time
Petite Anse : small bay
Petite Martinique : Little Martinique (from the name of the large French island in the Carribbean)
petit étang : the pond
Petit Saint Hilaire (on Carriacou): little Saint Hilaire (a place name existing as very numerous villages in France)
Pomme rose : pink apple
Pyrénées : (mountain range separating France from Spain)
Quarrière : a quarry
Ravine : gulch, gully
Requin Bay : Shark bay
Ronde island : round island
Rosemont : rose mount
Saint Cloud (French town near Paris)
Saint-Omer : a town in northern France
Salines : salt pans, salt fields
Sans Souci : without trouble
Sauteurs : jumpers
Soubise : under winter's winds
Terre Cannes : Sugar Cane fields
Vendome : (from the French town Vendôme)
fb8e6c8ee0bbb3405c2d5b319b28f3cf523a3aff
225
224
2025-01-14T23:19:09Z
Kiki
34
wikitext
text/x-wiki
== French name Meaning ==
* Grand anse.......................................................... Big bay
* '''L'Anse Aux Épines............................................ Bay of thorns'''
* Morne Rouge........................................................ Red hill
* Beausejour........................................................... Beautiful view
* Frequente............................................................ Frequented
* Grand mal........................................................... Big evil
* La Mode............................................................... Fashion
* Mardi Gras........................................................... Fat Tuesday
* Mont tout.............................................................. All mountain
* Apretout................................................................. After all
* Anse la Roche ( Carriacou) ................................. Rock bay
* Beaulieu............................................................... Beautiful place
* Belle isles.............................................................. Beautiful island
* Belmont ............................................................... Beautiful mount
* Bonaire ............................................................... Good air
* Celeste................................................................. Celestial
* Corbeau .............................................................. Raven
* Crochu.................................................................. Hooked, crooked
* Duquesne............................................................. "from the Oak"
* Durmont............................................................... Hard mountain
* Fontain Bleu falls.................................................. After the town of Fontainebleau, south of Paris
* Gouyave............................................................... Guava
* Grand Bras........................................................... Long arms
* Grand Roy Great king
* Gros Point Big point
* La Baye The bay
* la Filette The little girl
* La Fortune Fortune
* La Mode Fashion
* La Poterie The potter's
* La Sagesse bay Wisdom bay
* La Tante The aunt
* La Borie An old shepherd hut
* Marigot The swamp
* Marquis Marquee
* Mirabeau A place where you have a large view
* Mon Plaisir My pleasure
* Montreuil numerous placenames in France
Morne délice : delightful mountain
Morne Docteur : doctor mount
Morne Fendue : cracked mountain
Morne jaloux : jealous mountain
Morne Longue : long mountain
Morne rouge : red mountain
Morne Tranquille : Quiet mountain
Noelville : Christmastown
Nonpareil : without equal
Palmiste : palm tree
Pecher : peach tree
perdmontemps : wastes my time
Petite Anse : small bay
Petite Martinique : Little Martinique (from the name of the large French island in the Carribbean)
petit étang : the pond
Petit Saint Hilaire (on Carriacou): little Saint Hilaire (a place name existing as very numerous villages in France)
Pomme rose : pink apple
Pyrénées : (mountain range separating France from Spain)
Quarrière : a quarry
Ravine : gulch, gully
Requin Bay : Shark bay
Ronde island : round island
Rosemont : rose mount
Saint Cloud (French town near Paris)
Saint-Omer : a town in northern France
Salines : salt pans, salt fields
Sans Souci : without trouble
Sauteurs : jumpers
Soubise : under winter's winds
Terre Cannes : Sugar Cane fields
Vendome : (from the French town Vendôme)
5f37ad80d038900e384d62d246e28ef0a30dbf66
226
225
2025-01-14T23:39:29Z
Kiki
34
wikitext
text/x-wiki
== French name Meaning ==
* Grand anse.......................................................... Big bay
* '''L'Anse Aux Épines............................................ Bay of thorns'''
* Morne Rouge........................................................ Red hill
* Beausejour........................................................... Beautiful view
* Frequente............................................................ Frequented
* Grand mal........................................................... Big evil
* La Mode............................................................... Fashion
* Mardi Gras........................................................... Fat Tuesday
* Mont tout.............................................................. All mountain
* Apretout................................................................. After all
* Anse la Roche ( Carriacou) ................................. Rock bay
* Beaulieu............................................................... Beautiful place
* Belle isles.............................................................. Beautiful island
* Belmont ............................................................... Beautiful mount
* Bonaire ............................................................... Good air
* Celeste................................................................. Celestial
* Corbeau .............................................................. Raven
* Crochu.................................................................. Hooked, crooked
* Duquesne............................................................. "from the Oak"
* Durmont............................................................... Hard mountain
* Fontain Bleu falls.................................................. After the town of Fontainebleau, south of Paris
* Gouyave............................................................... Guava
* Grand Bras........................................................... Long arms
* Grand Roy............................................................ Great king
* Gros Point........................................................... Big point
* La Baye............................................................... The bay
* la Filette............................................................... The little girl
* La Fortune........................................................... Fortune
* La Mode.............................................................. Fashion
* La Poterie............................................................ The potter's
* La Sagesse bay.................................................. Wisdom bay
* La Tante.............................................................. The aunt
* La Borie.............................................................. An old shepherd hut
* Marigot.............................................................. The swamp
* Marquis............................................................ Marquee
* Mirabeau......................................................... A place where you have a large view
* Mon Plaisir....................................................... My pleasure
* Montreuil.......................................................... Numerous placenames in France
* Morne Delice..................................................... Delightful mountain
* Morne Docteur....................................................Doctor mount
* Morne Fendue.................................................. Cracked mountain
* Morne jaloux......................................................Jealous mountain
* Morne Longue................................................... Long mountain
* Morne rouge......................................................Red mountain
* Morne Tranquille.............................................. Quiet mountain
* Nonpareil......................................................... Without equal
* Palmiste............................................................ Palm tree
* Perdmontemps................................................. Wastes my time
* Petite Anse.........................................................Small bay
* Petite Martinique............................................... Little Martinique (from the name of the large French island in the Caribbean)
* Petit Saint Hilaire( Carriacou)............................ Little Saint Hilaire (a place name existing as very numerous villages in France)
* Pomme rose......................................................Pink apple
* Ravine...............................................................Gulch, gully
* Requin Bay.........................................................Shark bay
* Saint Cloud........................................................ (French town near Paris)
* Salines.............................................................. Salt pans, salt fields
* Sans Souci........................................................ Without trouble
* Sauteurs........................................................... Jumpers
* Soubise............................................................ under winter's winds
* Vendome.......................................................... (from the French town Vendôme)
600a415c8b33c1216d181cddc529a55c9199992c
Secondary Schools In Grenada
0
107
227
2025-01-18T00:32:25Z
Kiki
34
Created page with "== Grenada Boys Secondary School == The Grenada Boys' Secondary School (GBSS), originally called St. George's Grammar School, opened on February 2, 1885, with 10 male students at Mrs. Grey's premises in St. George's. In 1910-11, it was renamed and relocated to Melville Street, officially opening on September 18, 1911, with 23 students. In 1946, the school moved to Tanteen, using wooden barracks previously occupied by the Windward Island battalion during World War II. The..."
wikitext
text/x-wiki
== Grenada Boys Secondary School ==
The Grenada Boys' Secondary School (GBSS), originally called St. George's Grammar School, opened on February 2, 1885, with 10 male students at Mrs. Grey's premises in St. George's. In 1910-11, it was renamed and relocated to Melville Street, officially opening on September 18, 1911, with 23 students. In 1946, the school moved to Tanteen, using wooden barracks previously occupied by the Windward Island battalion during World War II. These barracks were destroyed by Hurricane Ivan in 2004, and the school faced further destruction from fires in 2005.The school underwent major renovations starting in 2006, with a new building completed by 2008 and further upgrades in 2021. Although primarily a boys' school, girls attended the sixth form and were briefly admitted to lower forms between 1982 and 1991.Today, GBSS has approximately 840 male students, supported by a principal, 50 teachers, and two counselors.<ref>Edward L. Cox: The Grenada Boys' Secondary School and the Debate Over Secondary Education in Grenada, 1885-1946</ref>
== Presbyterian Brothers College ==
f20ab9a15c5d42a7b15f197baabece4ae10c780a
228
227
2025-01-18T02:08:27Z
Kiki
34
wikitext
text/x-wiki
== Grenada Boys Secondary School ==
The Grenada Boys' Secondary School (GBSS), originally called St. George's Grammar School, opened on February 2, 1885, with 10 male students at Mrs. Grey's premises in St. George's. In 1910-11, it was renamed and relocated to Melville Street, officially opening on September 18, 1911, with 23 students. In 1946, the school moved to Tanteen, using wooden barracks previously occupied by the Windward Island battalion during World War II. These barracks were destroyed by Hurricane Ivan in 2004, and the school faced further destruction from fires in 2005.The school underwent major renovations starting in 2006, with a new building completed by 2008 and further upgrades in 2021. Although primarily a boys' school, girls attended the sixth form and were briefly admitted to lower forms between 1982 and 1991.Today, GBSS has approximately 840 male students, supported by a principal, 50 teachers, and two counselors.<ref>Edward L. Cox: The Grenada Boys' Secondary School and the Debate Over Secondary Education in Grenada, 1885-1946</ref>
== Presentation Brothers College ==
'''Presentation Brothers College (PBC)''' is a prominent Roman Catholic secondary school for boys located in St. George's, Grenada. It was founded by the '''Presentation Brothers''' from Ireland on '''January 26th, 1947'''.<ref>https://www.facebook.com/share/185UeSHzmF</ref>
== St. Josephs Convent St. George ==
'''St. Joseph’s Convent St. George''', founded in '''1875''', has been a cornerstone of excellence in Catholic education for over '''150 years'''. Situated in the heart of St. George’s, Grenada, the school was established with a vision to provide a well-rounded education that promotes '''academic excellence''', '''spiritual growth''', and a strong sense of '''community service'''. From its modest beginnings, the school has grown into a renowned institution, serving as a beacon of '''knowledge''' and '''morality''' in the community.<ref>About – St. Joseph’s Convent St. George</ref>
12a4ca576efe78511e6c27be8e4ef20632b6abd6
229
228
2025-01-18T02:13:09Z
Kiki
34
wikitext
text/x-wiki
== Grenada Boys Secondary School ==
The Grenada Boys' Secondary School (GBSS), originally called St. George's Grammar School, opened on February 2, 1885, with 10 male students at Mrs. Grey's premises in St. George's. In 1910-11, it was renamed and relocated to Melville Street, officially opening on September 18, 1911, with 23 students. In 1946, the school moved to Tanteen, using wooden barracks previously occupied by the Windward Island battalion during World War II. These barracks were destroyed by Hurricane Ivan in 2004, and the school faced further destruction from fires in 2005.The school underwent major renovations starting in 2006, with a new building completed by 2008 and further upgrades in 2021. Although primarily a boys' school, girls attended the sixth form and were briefly admitted to lower forms between 1982 and 1991.Today, GBSS has approximately 840 male students, supported by a principal, 50 teachers, and two counselors.<ref>Edward L. Cox: The Grenada Boys' Secondary School and the Debate Over Secondary Education in Grenada, 1885-1946</ref>
== Presentation Brothers College ==
'''Presentation Brothers College (PBC)''' is a prominent Roman Catholic secondary school for boys located in St. George's, Grenada. It was founded by the '''Presentation Brothers''' from Ireland on '''January 26th, 1947'''.<ref>https://www.facebook.com/share/185UeSHzmF</ref>
== St. Josephs Convent St. George ==
'''St. Joseph’s Convent St. George''', founded in '''1875''', has been a cornerstone of excellence in Catholic education for over '''150 years'''. Situated in the heart of St. George’s, Grenada, the school was established with a vision to provide a well-rounded education that promotes '''academic excellence''', '''spiritual growth''', and a strong sense of '''community service'''. From its modest beginnings, the school has grown into a renowned institution, serving as a beacon of '''knowledge''' and '''morality''' in the community.<ref>About – St. Joseph’s Convent St. George</ref>
== Anglican High Secondary School ==
af0e6909e905f8e4c3eab5e09610e083fa96cd8d
232
229
2025-01-20T19:36:51Z
Kiki
34
wikitext
text/x-wiki
== Grenada Boys Secondary School ==
The Grenada Boys' Secondary School (GBSS), originally called St. George's Grammar School, opened on February 2, 1885, with 10 male students at Mrs. Grey's premises in St. George's. In 1910-11, it was renamed and relocated to Melville Street, officially opening on September 18, 1911, with 23 students. In 1946, the school moved to Tanteen, using wooden barracks previously occupied by the Windward Island battalion during World War II. These barracks were destroyed by Hurricane Ivan in 2004, and the school faced further destruction from fires in 2005.The school underwent major renovations starting in 2006, with a new building completed by 2008 and further upgrades in 2021. Although primarily a boys' school, girls attended the sixth form and were briefly admitted to lower forms between 1982 and 1991.Today, GBSS has approximately 840 male students, supported by a principal, 50 teachers, and two counselors.<ref>Edward L. Cox: The Grenada Boys' Secondary School and the Debate Over Secondary Education in Grenada, 1885-1946</ref>
== Presentation Brothers College ==
'''Presentation Brothers College (PBC)''' is a prominent Roman Catholic secondary school for boys located in St. George's, Grenada. It was founded by the '''Presentation Brothers''' from Ireland on '''January 26th, 1947'''.<ref>https://www.facebook.com/share/185UeSHzmF</ref>
== St. Josephs Convent St. George ==
'''St. Joseph’s Convent St. George''', founded in '''1875''', has been a cornerstone of excellence in Catholic education for over '''150 years'''. Situated in the heart of St. George’s, Grenada, the school was established with a vision to provide a well-rounded education that promotes '''academic excellence''', '''spiritual growth''', and a strong sense of '''community service'''. From its modest beginnings, the school has grown into a renowned institution, serving as a beacon of '''knowledge''' and '''morality''' in the community.<ref>About – St. Joseph’s Convent St. George</ref>
== Anglican High Secondary School ==
== Wesley College ==
== Boca Secondary School ==
== Happy Hill Secondary School ==
== Beacon High School ==
== Westmorland Secondary School ==
== J.W Fletcher Catholic Secondary School ==
== St. Davids's Catholic Secondary School ==
== Westerhall Secondary School ==
== St. Joseph's Convent St. Andrew ==
== St. Andrews Anglican Secondary School ==
== Grenada Secondary School ==
== Grenada Christian Academy ==
== Grenada SDA Comprehensive School ==
== St. John's Christian Academy ==
== St. Mark Secondary School ==
== St. Rose Modern Secondary School ==
689c905178e3ab99dbd1cdf83c764d6d7e5b02fa
233
232
2025-01-20T22:00:46Z
Kiki
34
wikitext
text/x-wiki
== Grenada Boys Secondary School ==
The Grenada Boys' Secondary School (GBSS), originally called St. George's Grammar School, opened on February 2, 1885, with 10 male students at Mrs. Grey's premises in St. George's. In 1910-11, it was renamed and relocated to Melville Street, officially opening on September 18, 1911, with 23 students. In 1946, the school moved to Tanteen, using wooden barracks previously occupied by the Windward Island battalion during World War II. These barracks were destroyed by Hurricane Ivan in 2004, and the school faced further destruction from fires in 2005.The school underwent major renovations starting in 2006, with a new building completed by 2008 and further upgrades in 2021. Although primarily a boys' school, girls attended the sixth form and were briefly admitted to lower forms between 1982 and 1991.Today, GBSS has approximately 840 male students, supported by a principal, 50 teachers, and two counselors.<ref>Edward L. Cox: The Grenada Boys' Secondary School and the Debate Over Secondary Education in Grenada, 1885-1946</ref>
== Presentation Brothers College ==
'''Presentation Brothers College (PBC)''' is a prominent Roman Catholic secondary school for boys located in St. George's, Grenada. It was founded by the '''Presentation Brothers''' from Ireland on '''January 26th, 1947'''.<ref>https://www.facebook.com/share/185UeSHzmF</ref>
== St. Josephs Convent St. George ==
'''St. Joseph’s Convent St. George''', founded in '''1875''', has been a cornerstone of excellence in Catholic education for over '''150 years'''. Situated in the heart of St. George’s, Grenada, the school was established with a vision to provide a well-rounded education that promotes '''academic excellence''', '''spiritual growth''', and a strong sense of '''community service'''. From its modest beginnings, the school has grown into a renowned institution, serving as a beacon of '''knowledge''' and '''morality''' in the community.<ref>About – St. Joseph’s Convent St. George</ref>
== Anglican High Secondary School ==
The Church of England High School, now the Anglican High School, first opened its doors to girls in September 1916. The school was the brainchild of Archdeacon Walton who wanted a school to teach girls of “the Church of England Persuasion”.
The school was first located at Bachelor Hall, Simmons Alley. Next it moved to Lamollie House, the present site of First Caribbean International Bank (formerly Barclay’s Bank) on Church Street. When the school first opened, there were nineteen students on roll. The staff numbered three.
In September 1952 the school moved to its present location in Tanteen, after a brief stint (1946-1952) on the compound of the Grenada Boys’ Secondary School. On October 15th, 1972 the main building of the school was completely destroyed by fire.<ref>History</ref>
== Wesley College ==
== Boca Secondary School ==
== Happy Hill Secondary School ==
== Beacon High School ==
== Westmorland Secondary School ==
== J.W Fletcher Catholic Secondary School ==
== St. Davids's Catholic Secondary School ==
== Westerhall Secondary School ==
== St. Joseph's Convent St. Andrew ==
== St. Andrews Anglican Secondary School ==
== Grenada Secondary School ==
== Grenada Christian Academy ==
== Grenada SDA Comprehensive School ==
== St. John's Christian Academy ==
== St. Mark Secondary School ==
== St. Rose Modern Secondary School ==
c4687b06585dc35ccb3141219a934e4a3e069306
234
233
2025-01-20T22:50:50Z
Kiki
34
wikitext
text/x-wiki
== Grenada Boys Secondary School ==
The Grenada Boys' Secondary School (GBSS), originally called St. George's Grammar School, opened on February 2, 1885, with 10 male students at Mrs. Grey's premises in St. George's. In 1910-11, it was renamed and relocated to Melville Street, officially opening on September 18, 1911, with 23 students. In 1946, the school moved to Tanteen, using wooden barracks previously occupied by the Windward Island battalion during World War II. These barracks were destroyed by Hurricane Ivan in 2004, and the school faced further destruction from fires in 2005.The school underwent major renovations starting in 2006, with a new building completed by 2008 and further upgrades in 2021. Although primarily a boys' school, girls attended the sixth form and were briefly admitted to lower forms between 1982 and 1991.Today, GBSS has approximately 840 male students, supported by a principal, 50 teachers, and two counselors.<ref>Edward L. Cox: The Grenada Boys' Secondary School and the Debate Over Secondary Education in Grenada, 1885-1946</ref>
== Presentation Brothers College ==
'''Presentation Brothers College (PBC)''' is a prominent Roman Catholic secondary school for boys located in St. George's, Grenada. It was founded by the '''Presentation Brothers''' from Ireland on '''January 26th, 1947'''.<ref>https://www.facebook.com/share/185UeSHzmF</ref>
== St. Josephs Convent St. George ==
'''St. Joseph’s Convent St. George''', founded in '''1875''', has been a cornerstone of excellence in Catholic education for over '''150 years'''. Situated in the heart of St. George’s, Grenada, the school was established with a vision to provide a well-rounded education that promotes '''academic excellence''', '''spiritual growth''', and a strong sense of '''community service'''. From its modest beginnings, the school has grown into a renowned institution, serving as a beacon of '''knowledge''' and '''morality''' in the community.<ref>About – St. Joseph’s Convent St. George</ref>
== Anglican High Secondary School ==
The Church of England High School, now the Anglican High School, first opened its doors to girls in September 1916. The school was the brainchild of Archdeacon Walton who wanted a school to teach girls of “the Church of England Persuasion”.
The school was first located at Bachelor Hall, Simmons Alley. Next it moved to Lamollie House, the present site of First Caribbean International Bank (formerly Barclay’s Bank) on Church Street. When the school first opened, there were nineteen students on roll. The staff numbered three.
In September 1952 the school moved to its present location in Tanteen, after a brief stint (1946-1952) on the compound of the Grenada Boys’ Secondary School. On October 15th, 1972 the main building of the school was completely destroyed by fire.<ref>http://www.ahsgrenada.net/index.php/about-ahs/history</ref>
== Wesley College ==
Wesley College is a secondary School located in St, Georges Grenada Which was founded by the Methodist church in 1942.
== Boca Secondary School ==
== Happy Hill Secondary School ==
== Beacon High School ==
== Westmorland Secondary School ==
== J.W Fletcher Catholic Secondary School ==
== St. Davids's Catholic Secondary School ==
== Westerhall Secondary School ==
== St. Joseph's Convent St. Andrew ==
== St. Andrews Anglican Secondary School ==
== Grenada Secondary School ==
== Grenada Christian Academy ==
== Grenada SDA Comprehensive School ==
== St. John's Christian Academy ==
== St. Mark Secondary School ==
== St. Rose Modern Secondary School ==
e146f0effd964abb995521fc3287720eb381d12f
MediaWiki:Sidebar
8
3
230
4
2025-01-20T09:40:44Z
Wikiricky
1
added contribution scores
wikitext
text/x-wiki
* navigation
** Special:CreatePage|Create a Page
** Special:Contributionscores|contributionscores
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* SEARCH
* TOOLBOX
* LANGUAGES
ab40a2e64e9882c9b1485ed0874404db9e6b5bce
Plantation Estates In Grenada
0
109
237
2025-02-11T22:45:00Z
Kiki
34
Created page with " == Hermitage Plantation House == Hermitage Estate, located in St. Andrew's, Grenada, was historically owned by prominent figures, including Alexander Fraser, who managed the estate alongside his involvement with Baillie’s plantation. Fraser, a planter with significant experience, married Emilia Duff of Muirton, the niece of Evan Baillie. Their son, Evan Baillie Fraser (1800-91), was born in Grenada. By 1807, Fraser had relocated to the UK, and by 1812, following the..."
wikitext
text/x-wiki
== Hermitage Plantation House ==
Hermitage Estate, located in St. Andrew's, Grenada, was historically owned by prominent figures, including Alexander Fraser, who managed the estate alongside his involvement with Baillie’s plantation. Fraser, a planter with significant experience, married Emilia Duff of Muirton, the niece of Evan Baillie. Their son, Evan Baillie Fraser (1800-91), was born in Grenada.
By 1807, Fraser had relocated to the UK, and by 1812, following the death of Evan Baillie, he entered into a partnership with Baillie’s son, James Evan Baillie, to form the company '''JE Baillie, Fraser & Co.''' Based in London, the company dissolved in 1820.
In 1836, a compensation claim for 149 slaves at the Hermitage Estate was filed for £4030 4s 3d, with Evan Baillie (deceased) serving as trustee. Previous part-owners included Colin Chisholm and James Baillie, father of the Baillie brothers.
John Sleeper, in 1860, described Hermitage as one of the finest plantations in Grenada, situated on elevated ground with a residence once occupied by Mr. Houston, the estate's attorney. Under Houston’s management, many fruit trees planted by a previous owner, referred to as “Bailey,” were replaced with sugar cane crops.<ref>https://grenadanationalarchives.blogspot.com/2014/07/grenada-heritage-our-plantations-part-3.htm</ref>
== Levera Estate Plantation, St. Patrick Grenada ==
Levera Estate was owned by a Mr. Snell in April 1785. By the late 1790s, '''Alexander Fraser''' (1759-1837) of Inchcoulter, Kiltearn, Scotland, became involved with the estate. Fraser, who also contributed to raising funds for the Northern Infirmary in Inverness, purchased his own estate in 1806 and founded the village of Evanton. He was a friend of William Smith of Revolution Hall, who bequeathed him £2000 in his will. Fraser is confirmed to have owned Levera Estate by 1825.
Following the abolition of the slave trade in 1811 and the subsequent legal developments, Fraser submitted a claim to the '''Slave Compensation Commission''' on November 9, 1835, for 94 slaves at Levera Estate, seeking £2759 1s 0d in compensation. However, a successful counterclaim was made by Hugh Duncan Baillie, James Evan Baillie, and George Henry Ames, who acted as assignees for the compensation funds.<ref>https://grenadanationalarchives.blogspot.com/2014/07/grenada-heritage-our-plantations-part-3.htm</ref>
== Revolution Hall Estate Plantation, St. Johns Grenada ==
The '''Revolution Hall Estate''' was overseen by Joseph Barlow during the 1795 ‘insurrection’ in Grenada. Described in 1845 as a fertile sugar estate located about two to three miles from the village of Goyave, the estate was involved in a compensation claim in 1836. Richard Oliver Smith, the owner-in-fee, claimed compensation for 168 slaves at the estate amounting to £4210 16s 8d. However, successful counterclaims by the Baillie brothers, acting as mortgagees, resulted in Smith receiving no compensation.
Richard Oliver Smith (May 1788 - ????) was the illegitimate son of Grenada slave-owner '''William Smith''' and Sarah Jean. He lived in Britain from around 1793 to 1833. Richard's father’s will, dated 1793, left provisions for Sarah Jean and their children, including Richard, who was five years old at the time. Richard Smith married twice: first to Harriet Gee in 1806, with whom he had a daughter, Emily, and later to Mary Broderip in 1819, with whom he had a daughter, Elizabeth Georgiana.
Records from the '''Revolution Hall Estate''', including accounts from 1821, provide detailed lists of slaves, livestock, and estate maintenance. These documents are held at the '''Burke Library, Hamilton College''', and include correspondence about the estate's unprofitability in the early 1830s. In 1833, Richard moved to Grenada, and his daughter Emily later married Rev. John Nurse in 1835.<ref>Grenada Heritage: Our Plantations – part 3 ~ Grenada National Archives</ref>
----
<references />
75634df5a3520f446f2314ab55011c4f08279aa6
National Parks And Reserves Found In Grenada
0
110
238
2025-02-11T23:50:53Z
Kiki
34
Created page with "== Grand Etang National Park and Forest Reserve == '''Physical Facts:''' * The Reserve spans elevations from 300 to 760 meters, containing four of Grenada’s highest mountains, all of volcanic origin. * Grand Etang Lake, a crater lake, lies at the heart of the Reserve, 530m above sea level. '''Cultural Facts:''' * Likely used by the Arawaks for hunting and ceremony, and later as a Carib camp. * In 1796, British forces captured a French stronghold near Mount Qua Qua...."
wikitext
text/x-wiki
== Grand Etang National Park and Forest Reserve ==
'''Physical Facts:'''
* The Reserve spans elevations from 300 to 760 meters, containing four of Grenada’s highest mountains, all of volcanic origin.
* Grand Etang Lake, a crater lake, lies at the heart of the Reserve, 530m above sea level.
'''Cultural Facts:'''
* Likely used by the Arawaks for hunting and ceremony, and later as a Carib camp.
* In 1796, British forces captured a French stronghold near Mount Qua Qua.
'''Recreational Activities:'''
* Visitors can enjoy facilities like a visitor center, trails, and picnic areas. Fees: XCD $5.34 or USD $2.00.
* Trails range from easy to challenging, with options for hiking and exploring nature.
'''Wildlife:'''
* Home to species like the Mona Monkey, tropical birds, and the endangered Grenada Frog.
* The forest also shelters armadillos, opossums, and various birds.
Grand Etang offers a mix of scenic views, historical significance, and rich biodiversity.<ref>Grand Etang National Park & Forest Reserve - Grenada Tourism Authority</ref>
== Levera National Park ==
Levera National Park, covering 450 acres in St. Patrick parish, is one of Grenada's most scenic and ecologically diverse coastal areas. The park features a popular beach, a mangrove-filled lagoon, and important wildlife habitats. The lagoon is a birdwatcher's paradise, home to species like the Scarlet Ibis, herons, and black-necked stilts. The marine area includes coral reefs and sea grass beds, supporting lobster and reef fish. From March to July, the beach hosts endangered leatherback turtles that come to lay their eggs. Visitors can enjoy a walking trail around a 23-acre pond, a boardwalk over the pond, and nature excursions, including turtle-watching tours.<ref>Levera National Park - Grenada Tourism Authority</ref>
== Mt. Hartman National Park and Dove Sanctuary ==
Located near Woburn Bay in southern Grenada, the 154-acre Mt. Hartman Dove Sanctuary is dedicated to protecting the endangered Grenada Dove, endemic to the island. The sanctuary, declared a national park, features a visitor center operated by the Forestry Department, offering guided tours to spot the Grenada Dove. The area has a dry thorn scrub ecosystem, with cactus shrubs and coastal woodlands, and is also home to diverse mangrove habitats that support a variety of wildlife.<ref>Mt. Hartman Dove Sanctuary - Grenada Tourism Authority</ref>
== Annandale Forest Reserve ==
The Annandale Forest Reserve, located near the headwaters of a major tributary of the Beausejour River, borders the Grand Etang Forest Reserve. It spans elevations from 250 meters to 700 meters along the ridge line. The reserve shares similar bedrock and soil resources with Grand Etang. While climatic data has not been collected, it is expected that the Annandale Reserve receives less rainfall, with higher average temperatures at its lower elevations.<ref>Review of Protected Areas Management Framework in Grenada</ref>
== Perseverance Protected Area ==
== High North National Park (Carriacou) ==
7174957331aa367d90c5b52ed125e17b0b609c4f
239
238
2025-02-11T23:53:34Z
Kiki
34
wikitext
text/x-wiki
== Grand Etang National Park and Forest Reserve ==
'''Physical Facts:'''
* The Reserve spans elevations from 300 to 760 meters, containing four of Grenada’s highest mountains, all of volcanic origin.
* Grand Etang Lake, a crater lake, lies at the heart of the Reserve, 530m above sea level.
'''Cultural Facts:'''
* Likely used by the Arawaks for hunting and ceremony, and later as a Carib camp.
* In 1796, British forces captured a French stronghold near Mount Qua Qua.
'''Recreational Activities:'''
* Visitors can enjoy facilities like a visitor center, trails, and picnic areas. Fees: XCD $5.34 or USD $2.00.
* Trails range from easy to challenging, with options for hiking and exploring nature.
'''Wildlife:'''
* Home to species like the Mona Monkey, tropical birds, and the endangered Grenada Frog.
* The forest also shelters armadillos, opossums, and various birds.
Grand Etang offers a mix of scenic views, historical significance, and rich biodiversity.<ref>Grand Etang National Park & Forest Reserve - Grenada Tourism Authority</ref>
== Levera National Park ==
Levera National Park, covering 450 acres in St. Patrick parish, is one of Grenada's most scenic and ecologically diverse coastal areas. The park features a popular beach, a mangrove-filled lagoon, and important wildlife habitats. The lagoon is a birdwatcher's paradise, home to species like the Scarlet Ibis, herons, and black-necked stilts. The marine area includes coral reefs and sea grass beds, supporting lobster and reef fish. From March to July, the beach hosts endangered leatherback turtles that come to lay their eggs. Visitors can enjoy a walking trail around a 23-acre pond, a boardwalk over the pond, and nature excursions, including turtle-watching tours.<ref>Levera National Park - Grenada Tourism Authority</ref>
== Mt. Hartman National Park and Dove Sanctuary ==
Located near Woburn Bay in southern Grenada, the 154-acre Mt. Hartman Dove Sanctuary is dedicated to protecting the endangered Grenada Dove, endemic to the island. The sanctuary, declared a national park, features a visitor center operated by the Forestry Department, offering guided tours to spot the Grenada Dove. The area has a dry thorn scrub ecosystem, with cactus shrubs and coastal woodlands, and is also home to diverse mangrove habitats that support a variety of wildlife.<ref>Mt. Hartman Dove Sanctuary - Grenada Tourism Authority</ref>
== Annandale Forest Reserve ==
The Annandale Forest Reserve, located near the headwaters of a major tributary of the Beausejour River, borders the Grand Etang Forest Reserve. It spans elevations from 250 meters to 700 meters along the ridge line. The reserve shares similar bedrock and soil resources with Grand Etang. While climatic data has not been collected, it is expected that the Annandale Reserve receives less rainfall, with higher average temperatures at its lower elevations.<ref>Review of Protected Areas Management Framework in Grenada</ref>
== Perseverance Protected Area ==
== High North National Park (Carriacou) ==
It is a forest reserve with great views of both the Northern & Southern Grenadines. You'll see plenty of dry thorn scrub and several species of birds. If you're lucky, you might also see small tree boas and land turtles.
b99ec31b70ab92ef1d9a4a37badade9b128526f5
240
239
2025-02-11T23:54:18Z
Kiki
34
wikitext
text/x-wiki
== Grand Etang National Park and Forest Reserve ==
'''Physical Facts:'''
* The Reserve spans elevations from 300 to 760 meters, containing four of Grenada’s highest mountains, all of volcanic origin.
* Grand Etang Lake, a crater lake, lies at the heart of the Reserve, 530m above sea level.
'''Cultural Facts:'''
* Likely used by the Arawaks for hunting and ceremony, and later as a Carib camp.
* In 1796, British forces captured a French stronghold near Mount Qua Qua.
'''Recreational Activities:'''
* Visitors can enjoy facilities like a visitor center, trails, and picnic areas. Fees: XCD $5.34 or USD $2.00.
* Trails range from easy to challenging, with options for hiking and exploring nature.
'''Wildlife:'''
* Home to species like the Mona Monkey, tropical birds, and the endangered Grenada Frog.
* The forest also shelters armadillos, opossums, and various birds.
Grand Etang offers a mix of scenic views, historical significance, and rich biodiversity.<ref>Grand Etang National Park & Forest Reserve - Grenada Tourism Authority</ref>
== Levera National Park ==
Levera National Park, covering 450 acres in St. Patrick parish, is one of Grenada's most scenic and ecologically diverse coastal areas. The park features a popular beach, a mangrove-filled lagoon, and important wildlife habitats. The lagoon is a birdwatcher's paradise, home to species like the Scarlet Ibis, herons, and black-necked stilts. The marine area includes coral reefs and sea grass beds, supporting lobster and reef fish. From March to July, the beach hosts endangered leatherback turtles that come to lay their eggs. Visitors can enjoy a walking trail around a 23-acre pond, a boardwalk over the pond, and nature excursions, including turtle-watching tours.<ref>Levera National Park - Grenada Tourism Authority</ref>
== Mt. Hartman National Park and Dove Sanctuary ==
Located near Woburn Bay in southern Grenada, the 154-acre Mt. Hartman Dove Sanctuary is dedicated to protecting the endangered Grenada Dove, endemic to the island. The sanctuary, declared a national park, features a visitor center operated by the Forestry Department, offering guided tours to spot the Grenada Dove. The area has a dry thorn scrub ecosystem, with cactus shrubs and coastal woodlands, and is also home to diverse mangrove habitats that support a variety of wildlife.<ref>Mt. Hartman Dove Sanctuary - Grenada Tourism Authority</ref>
== Annandale Forest Reserve ==
The Annandale Forest Reserve, located near the headwaters of a major tributary of the Beausejour River, borders the Grand Etang Forest Reserve. It spans elevations from 250 meters to 700 meters along the ridge line. The reserve shares similar bedrock and soil resources with Grand Etang. While climatic data has not been collected, it is expected that the Annandale Reserve receives less rainfall, with higher average temperatures at its lower elevations.<ref>Review of Protected Areas Management Framework in Grenada</ref>
== Perseverance Protected Area ==
== High North National Park (Carriacou) ==
It is a forest reserve with great views of both the Northern & Southern Grenadines. You'll see plenty of dry thorn scrub and several species of birds. If you're lucky, you might also see small tree boas and land turtles.<ref>High North National Park – OurCarriacou.com</ref>
fe53d64bc11b7fdeaf65b978e1fdb1ebd42b9593
Petroglyph Sites In Grenada
0
111
241
2025-02-12T02:18:24Z
Kiki
34
Created page with "== Mt. Rich Petroglyphs == == Duquesne Petroglyphs =="
wikitext
text/x-wiki
== Mt. Rich Petroglyphs ==
== Duquesne Petroglyphs ==
f32cfa7a464c5c34483cf124c8da11de71aa474a
Grenada's Volcanoes
0
112
242
2025-02-20T19:41:42Z
104.245.95.82
0
Created page with "== Kick 'Em Jenny == '''Kick-‘em-Jenny''' is an active submarine volcano 8 km north of Grenada, the most frequently erupting in the Eastern Caribbean. Its summit, about 197 m below sea level, is too deep to trigger a tsunami. Since its first recorded eruption in 1939, it has erupted at least 14 times, with the last in 2017. Geothermal vents reaching 150°C have been found, but energy extraction is unlikely. The volcano remains under a '''YELLOW''' alert, with a 1.5 km..."
wikitext
text/x-wiki
== Kick 'Em Jenny ==
'''Kick-‘em-Jenny''' is an active submarine volcano 8 km north of Grenada, the most frequently erupting in the Eastern Caribbean. Its summit, about 197 m below sea level, is too deep to trigger a tsunami. Since its first recorded eruption in 1939, it has erupted at least 14 times, with the last in 2017.
Geothermal vents reaching 150°C have been found, but energy extraction is unlikely. The volcano remains under a '''YELLOW''' alert, with a 1.5 km exclusion zone. Its name may come from rough waters or a French phrase meaning “turbulent cay.”<ref>Kick-‘Em-Jenny | The UWI Seismic Research Centre</ref>
== Mount Saint Catherine ==
'''Mt. St. Catherine''' is a dormant volcano in St. Mark's, Grenada, with a 1.5 km horseshoe-shaped crater and volcanic lava domes. Monitored by the '''UWI Seismic Research Center''', it is the only "live" volcano in Grenada due to its well-preserved shape, hot springs, and fumaroles. Though its last eruption likely occurred during the '''last Ice Age''', past eruptions produced pyroclastic flows extending northwest.<ref>Mount St. Catherine - I Am Grenada</ref>
== Grand Etang Lake ==
'''Grand Etang Crater Lake''' is a volcanic crater lake in '''Saint Andrew Parish''', formed by an extinct volcano that last erupted '''1–2 million years ago'''. Sitting '''530 m (1,740 ft) above sea level''', it spans '''36 acres''' and is '''about 20 feet deep'''. It is one of '''two crater lakes''' in Grenada, along with '''Lake Antoine'''.
Local folklore claims its depth is '''unknown''' and that a '''mermaid''' lures men to their doom. The lake is home to '''freshwater lobster, barracuda, bonefish, crayfish''', and other aquatic creatures.<ref>Grand Etang Crater Lake - I Am Grenada</ref>
== Lake Antoine ==
'''Lake Antoine''' is a '''16-acre''' crater lake formed by a long-extinct volcano, located '''6 miles north of Grenville'''. Surrounded by '''unspoiled nature''', it offers stunning views from a hillside vantage point. The '''shallow lake''' is a haven for wildlife, making it a prime spot for '''birdwatching''', attracting species like '''snail kites, fulvous whistling ducks, large-billed seed-finches, gray kingbirds, and limpkins'''.<ref>Lake Antoine - Grenada Tourism Authority</ref>
62856fcd6b0cac5abfbe5d45d0ca98d8aa05b545
Marine Protected Areas In Grenada
0
113
243
2025-02-20T21:20:54Z
Kiki
34
Created page with "== Moliniere-Beausejour == The '''Moliniere/Beausejour Marine Protected Area (MBMPA)''' was established in '''2001''' to protect the reef and serve as a '''nursery for juvenile fish'''. Covering '''60 hectares (0.23 sq. miles) and 2.2 km long''', it also promotes '''tourism and education'''. MPAs help improve fishing in nearby waters by allowing fish populations to grow and disperse. Fishing is prohibited, and wardens '''enforce regulations and monitor the reef'''. Six..."
wikitext
text/x-wiki
== Moliniere-Beausejour ==
The '''Moliniere/Beausejour Marine Protected Area (MBMPA)''' was established in '''2001''' to protect the reef and serve as a '''nursery for juvenile fish'''. Covering '''60 hectares (0.23 sq. miles) and 2.2 km long''', it also promotes '''tourism and education'''. MPAs help improve fishing in nearby waters by allowing fish populations to grow and disperse.
Fishing is prohibited, and wardens '''enforce regulations and monitor the reef'''. Six nearby communities are involved in its management, with initiatives like '''coastal cleanups'''. '''Anchoring is banned''', with '''white mooring balls''' for non-commercial use and '''red for commercial'''. Fees include '''$10 USD per mooring, $1 for snorkeling, and $2 for SCUBA''', supporting marine conservation.<ref>Grenada Underwater Sculptures in Marine Protected Area - All At Sea</ref>
== Grand Anse Marine Protected Area ==
The '''Grand Anse Marine Protected Area (GAMPA)''' was officially launched on '''January 26, 2017''', to protect '''Grand Anse Beach''', a hub for '''tourism, fishing, and recreation'''. Due to high traffic from '''hotels, restaurants, dive shops, visitors, and yachts''', the area faced risks of '''overuse and pollution''', making conservation crucial.
GAMPA aligns with Grenada’s '''strategic plan''' to enhance '''marine biodiversity''' and meet commitments under '''Sustainable Development Goal 14''' and the '''Caribbean Challenge Initiative (CCI)'''. Grenada pledged to protect '''25% of its coastal waters''' by 2020 and now has '''four MPAs''', with '''Grand Anse being the largest'''.
The MPA was established through a collaboration between '''Grenada’s Ministry of Agriculture, Lands, Forestry, and Fisheries''', '''The Nature Conservancy''', and the '''ECMMAN Project''', with funding from '''Germany’s BMUB'''.<ref>https://caribbeanbiodiversityfund.org/news/grenada-launches-its-newest-marine-protected-area-grand-anse/#:~:text=On%20January%2026%2C%202</ref>
== Sandy Island Oyster Bed Marine Protected Area ==
The '''Sandy Island Oyster Bed Marine Protected Area (SIOBMPA)''', established on '''July 31, 2010''', is a vital conservation area in Grenada, home to '''coral reefs, mangroves, seagrass beds, sea turtles, and the rare Grenadian Bank Tree Boa'''. It spans from '''Tyrrel Bay mangroves to Lauriston''', including '''offshore islands like Sandy Island and Mabouya Island'''.
SIOBMPA follows a '''co-management model''' with input from '''NGOs, government agencies, and local organizations''' to ensure sustainable use and conservation. Its goals include '''marine ecosystem protection, community engagement, eco-tourism, and sustainable fishing'''.<ref>Sandy Island/Oyster Bed Marine Protected Area (SIOBMPA): Carriacou’s Natural Treasure – OurCarriacou.com</ref>
== Woburn Clarkes Court Bay Marine Protected Area ==
The '''Woburn Clarkes Court Bay Marine Protected Area (MPA)''', located in Grenada, contains the largest intact mangrove ecosystem on the island. This area plays a key role in protecting over three miles of coastline from erosion and serves as vital habitat for fish, birds, and wildlife such as iguanas and snakes.
The '''MPA''' is managed by '''Grenada's fisheries and forestry departments''', with essential support from nonprofits like the '''Grenada Fund for Conservation''' and '''Woburn Woodlands Development Organization'''. These groups help with conservation activities, including cleanups, education, and mangrove replanting.
f7943ebcb9505fc3fc2f76f2b948cb76b37d357e
List of Colonial Administrators and Lieutenant Governors of Grenada
0
114
244
2025-03-09T20:54:04Z
Kiki
34
Created page with " == Role of the Governor (1763–1882) == The Governor of Grenada was the highest ranking position in the colony, they were appointed directly by the British crown. They were allowed complete executive, military and legislative authority. == Role of the Administrator (1882–1974) == The Administrator of Grenada replaced the lieutenant Governor in 1882 and acted as chief colonial officer under the Governor of the windward islands which was based in Grenada from 1885...."
wikitext
text/x-wiki
== Role of the Governor (1763–1882) ==
The Governor of Grenada was the highest ranking position in the colony, they were appointed directly by the British crown. They were allowed complete executive, military and legislative authority.
== Role of the Administrator (1882–1974) ==
The Administrator of Grenada replaced the lieutenant Governor in 1882 and acted as chief colonial officer under the Governor of the windward islands which was based in Grenada from 1885.The Administrator had limited authority than that of a governor as major decisions were made by the British Colonial Office or the Governor of the windward islands.
== Governors of Grenada (1763–1882) ==
British Governors (1763–1779):
# George Scott (March 1762–1764): Oversaw the transition of Grenada from French to British control following its capture in 1762.
# Robert Melville (December 1764, Acting; 1770–1771): Served initially as acting governor and later as the appointed governor.
# Ulysses Fitz Maurice (July 1764–1770, Acting 1771): Held the position during two separate terms.
# William Leybourne (March 1771–1775): Administered the colony during this period.
# Sir William Young (1775): Had a brief tenure as governor.
# George Macartney, Lord Macartney (1776–1779): Served until the French captured Grenada in 1779.
French Governor (1779–1783):
# Jean-François, Comte de Durat : On July 4<sup>th</sup> Grenada capitulated to the French and was not restored to Great Britain until 1782.
British Governors (1784–1802):
# Edward Mathew (1784–1785): Reestablished British administration after the French period.
# William Lucas (1785–1787, Acting): Served as acting governor.
# Samuel Williams (1787–1788, Acting; 1789–1792, Acting): Held the position during two separate terms.
# James Campbell (1788–1789, Acting): Served as acting governor between Williams' terms.
# Ninian Home (1792–1795): Administered the colony until his death during Fédon's Rebellion.
# Kenneth Francis Mackenzie (1795, Acting): Briefly served as acting governor following Home's death.
# Samuel Mitchell (1795–1796, Acting): Assumed acting governorship during this tumultuous period.
# Alexander Houston (1796–1797): Served as governor following Mitchell.
# Charles Green (1797–1801): Oversaw the administration leading up to the 19th century.
# Samuel Dent (1801–1802, Acting): Acted as governor before the position transitioned to a lieutenant governorship.
(The Grenada Handbook and Directory 1946, 1946)<ref>The Grenada Handbook and Directory 1946</ref>
== Lieutenant Governors (1802–1882): ==
<nowiki>*</nowiki>In 1802, the governance structure changed, and the position of governor was replaced by a lieutenant governor, subordinate to the Governor of Barbados.
# George Vere Hobart (1802–5 November 1802): First to serve as lieutenant governor under the new administrative arrangement.
# Thomas Hislop (1803–1804): Oversaw the colony during this period.
# William Douglas MacLean Clephane (1803): Served briefly in 1803.
# Frederick Maitland (29 March 1805–1811): Administered the colony for several years.
# Abraham Charles Adye (1811–1812): Held the position during this time.
# George Robert Ainslie (1812–1813): Served as lieutenant governor.
# Charles Shipley (1813–1815, Acting): Acted as lieutenant governor during this period.
# George Paterson (1815–1816, Acting; 1823–1826, Acting): Served as acting lieutenant governor during two separate terms.
# Phineas Riall (1816–1823): Oversaw the administration for several years.
# James Campbell (1826–1833): Served as lieutenant governor leading up to the incorporation of Grenada into the British Windward Islands.
# In 1833, Grenada was incorporated into the British Windward Islands, and the governance structure evolved accordingly.<ref>the Grenada Handbook and Directory 1946</ref>
== Administrators of Grenada (1882–1942) ==
<nowiki>*</nowiki>In 1882, the position of lieutenant governor was replaced by that of administrator, who was initially subordinate to the Governor of Barbados. In 1885, Barbados ceased its administrative control over the Windward Islands, and a new Governor of the Windward Islands was appointed, based in Grenada. The Administrator of Grenada then had responsibilities specific to the island.
# Irwin Charles Maling (1882, First Term): Served as the first administrator under the new system.
# Roger Tuckfield Goldsworthy (1882–1883): Oversaw the colony during this period.
# Edward Laborde (1883–1886, First Term): Administered the island in the early 1880s.
# Irwin Charles Maling (1886–1887, Second Term): Returned for a second term as administrator.
# Henry Rawlins Pipon Schooles (1887–1888): Served during this period.
John Elliott (June 1888–December 1888): Had a brief tenure as administrator. Robert Baxter Llewelyn (December 1888–January 1889, First Term): Served as administrator for a short period. (The Grenada Handbook and Directory 1946, 1946)
838eadf8f6db93bd8087f7e0f269eca6a2287cda